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; }   //输出图像 publicfunctiongetImage(){  $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(); }   //写入验证码 publicfunctioncreate_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; }   //画干扰线 publicfunctioncreate_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);  } }   //得到验证码 publicfunctiongetCode(){  returnstrtoupper($this->code); }   //输出验证码 privatefunctionshow_code(){  header("Content-type:image/png");  imagepng($this->img);  imagedestroy($this->img); }} | 
效果图:

© 版权声明
本文刊载的所有内容,包括文字、图片、音频、视频、软件、程序、以及网页版式设计等部门来源于互联网,版权均归原作者所有!本网站提供的内容服务于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
联系信息:邮箱aoxolcom@163.com或见网站底部。
联系信息:邮箱aoxolcom@163.com或见网站底部。
THE END
    


















请登录后发表评论
注册
社交帐号登录