本文实例为大家分享了几段php验证码函数,都很实用,具体内容如下
代码段一:简单php验证码函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
<?php function code(){ $im = imagecreatetruecolor(100, 40); $black = imagecolorallocate( $im , 0, 0, 0); $white = imagecolorallocate( $im , 255, 255, 255); imagefill( $im ,0,0, $white ); $strarr = array_merge (range(0,9),range(a,z),range(A,Z)); shuffle( $strarr ); $str =join( array_slice ( $strarr ,0,4)); $mm =rand(0,40); $aaa =rand(0,0); $bbb =rand(0,255); $ccc =rand(0,255); $color1 =imagecolorallocate( $im , $aaa , $bbb , $ccc ); imagestring( $im ,5, $mm ,10, $str , $color1 ); for ( $i =0; $i <700; $i ++){ $aa =rand(0,255); $bb =rand(0,255); $cc =rand(0,255); $color =imagecolorallocate( $im , $aa , $bb , $cc ); $a =rand(0,100); $b =rand(0,40); imagesetpixel( $im , $a , $b , $color ); } for ( $t =0; $t <3; $t ++){ $a1 =rand(0,255); $b1 =rand(0,255); $c1 =rand(0,255); $color2 =imagecolorallocate( $im , $a1 , $b1 , $c1 ); $a2 =rand(0,100); $b2 =rand(0,40); $a3 =rand(0,100); $b3 =rand(0,40); imageline( $im , $a2 , $b2 , $b3 , $b3 , $color2 ); } header( "content-type:image/png" ); imagepng( $im ); } code() ; ?> |
代码段二:php验证码函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
function _code( $_code_length = 4, $_width = 75, $_height = 25){ for ( $i =0; $i < $_code_length ; $i ++){ $_nmsg .= dechex (mt_rand(0,15)); } $_SESSION [ "code" ] = $_nmsg ; $_img = imagecreatetruecolor( $_width , $_height ); $_white = imagecolorallocate( $_img , 250, 250, 250); imagefill( $_img , 0, 0, $_white ); $_gray = imagecolorallocate( $_img , 196, 196, 196); imagerectangle( $_img , 0, 0, $_width -1, $_height -1, $_gray ); for ( $i =0; $i < 6; $i ++) { $_md_color = imagecolorallocate( $_img , mt_rand(200,255), mt_rand(200,255), mt_rand(200,255)); imageline( $_img , mt_rand(0, $_width ), mt_rand(0, $_height ),mt_rand(0, $_width ), mt_rand(0, $_height ), $_md_color ); } for ( $i =0; $i < 50; $i ++) { $_md_color = imagecolorallocate( $_img , mt_rand(200,255), mt_rand(200,255), mt_rand(200,255)); imagestring( $_img , 1, mt_rand(1, $_width -5), mt_rand(1, $_height -5), "*" , $_md_color ); } for ( $i =0; $i < $_code_length ; $i ++) { $_md_color = imagecolorallocate( $_img , mt_rand(0,102), mt_rand(0,102), mt_rand(0,102)); imagestring( $_img , 5, $i * $_width / $_code_length + mt_rand(1, 10), mt_rand(1, $_height /2), $_SESSION [ "code" ][ $i ], $_md_color ); } header( "Content-Type:image/png" ); imagepng( $_img ); imagedestroy( $_img ); } |
代码段三:php图片验证码函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
/*@ captcha()函数的功能:生成验证码 * @ 可自定义参数: * @ $width 图片宽度,默认80 * @ $high 高度,默认25 * @ $num 验证码个数,默认4个 * @ $line_num 随机画线条的个数,默认10 * @ $snow_num 随机雪花的数量,默认50 */ function captcha( $width =80, $high =25, $num =4, $line_num =10, $snow_num =50){ header( 'Content-Type:image/png' ); session_start(); //生成随机数字+字母 for ( $a = 0; $a < $num ; $a ++){ $code .= dechex (mt_rand(0, 15)); //dechex — 十进制转换为十六进制 } //把生成的验证码保存在SESSION超级全局数组中 $_SESSION [ 'captcha' ] = $code ; //创建画布 $img = imagecreatetruecolor( $width , $high ); //填充背景色为白色 $backcolor = imagecolorallocate( $img , '255' , '255' , '255' ); imagefill( $img , '0' , '0' , $backcolor ); //添加黑色边框 $bordercolor = imagecolorallocate( $img , 0, 0, 0); imagerectangle( $img , 0, 0, $width -1, $high -1, $bordercolor ); //随机画线条 for ( $i =0; $i < $line_num ; $i ++){ imageline( $img , mt_rand(0, $width *0.1), mt_rand(0, $high ), mt_rand( $width *0.9, $width ), mt_rand(0, $high ), imagecolorallocate( $img , mt_rand(150, 255), mt_rand(150, 255), mt_rand(150, 255))); } //随机打雪花 for ( $i =0; $i < $snow_num ; $i ++){ imagechar( $img ,1, mt_rand(0, $width ), mt_rand(0, $high ), '*' , imagecolorallocate( $img , mt_rand(200, 255), mt_rand(200, 255), mt_rand(200, 255))); } //画验证码 for ( $b = 0; $b < strlen ( $_SESSION [ 'captcha' ]); $b ++){ imagechar( $img ,5, $b * $width / $num +mt_rand(5,10), mt_rand(2, $high /2), $_SESSION [ 'captcha' ][ $b ], imagecolorallocate( $img , mt_rand(10, 150), mt_rand(10, 150), mt_rand(0, 100))); } ob_clean(); //清空输出缓冲区 imagepng( $img ); imagedestroy( $img ); } |
以上就是三段参考性较高的php验证码函数,希望对大家学习php程序设计有所帮助。