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
84
|
<?php /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ Class Image{ private $img ; public $width = 85; public $height = 25; public $code ; public $code_len = 4; public $code_str = "329832983DSDSKDSLKQWEWQ2lkfDSFSDjfdsfdsjwlkfj93290KFDSKJFDSOIDSLK" ; public $bg_color = '#DCDCDC' ; public $font_size = 16; public $font = 'font.ttf' ; public $font_color = '#000000' ; //创建验证码饿字符创 $code = '' ; for ( $i =0; $i < $this ->code_len; $i ++ ){ $code .= $this ->code_str[mt_rand(0, strlen ( $this ->code_str)-1)]; } return $this ->code = $code ; } //输出图像 public function getImage(){ $w = $this ->width; $h = $this ->height; $bg_color = $this ->bg_color; $img = imagecreatetruecolor( $w , $h ); $bg_color = imagecolorallocate( $img , hexdec( substr ( $bg_color , 1,2)), hexdec( substr ( $bg_color , 3,2)), hexdec( substr ( $bg_color , 5,2))); imagefill( $img , 0, 0, $bg_color ); $this ->img = $img ; $this ->create_font(); $this ->create_pix(); $this ->show_code(); } //写入验证码 public function create_font(){ $this ->create_code(); $color = $this ->font_color; $font_color = imagecolorallocate( $this ->img, hexdec( substr ( $color ,1,2)), hexdec( substr ( $color , 3,2)), hexdec( substr ( $color ,5,2))); $x = $this ->width/ $this ->code_len; for ( $i =0; $i < $this ->code_len; $i ++ ){ $txt_color = imagecolorallocate( $this ->img, mt_rand(0,100), mt_rand(0, 150), mt_rand(0, 200)); imagettftext( $this ->img, $this ->font_size, mt_rand(-30, 30), $x * $i +mt_rand(3, 6), mt_rand( $this ->height/1.2, $this ->height), $txt_color , $this ->font , $this ->code[ $i ]); //imagestring($this->img, $this->font_size, $x*$i+mt_rand(3, 6),mt_rand(0, $this->height/4) , $this->code[$i], $font_color); } $this ->font_color = $font_color ; } //画干扰线 public function create_pix(){ $pix_color = $this ->font_color; for ( $i =0; $i <100; $i ++){ imagesetpixel( $this ->img, mt_rand(0, $this ->width),mt_rand(0, $this ->height), $pix_color ); } for ( $j =0; $j <4; $j ++){ imagesetthickness( $this ->img, mt_rand(1, 2)); imageline( $this ->img, mt_rand(0, $this ->width), mt_rand(0, $this ->height), mt_rand(0, $this ->width), mt_rand(0, $this ->height), $pix_color ); } } //得到验证码 public function getCode(){ return strtoupper ( $this ->code); } //输出验证码 private function show_code(){ header( "Content-type:image/png" ); imagepng( $this ->img); imagedestroy( $this ->img); } } |
效果图:
© 版权声明
本文刊载的所有内容,包括文字、图片、音频、视频、软件、程序、以及网页版式设计等部门来源于互联网,版权均归原作者所有!本网站提供的内容服务于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
联系信息:邮箱aoxolcom@163.com或见网站底部。
联系信息:邮箱aoxolcom@163.com或见网站底部。
THE END
请登录后发表评论
注册
社交帐号登录