php验证类
程序员文章站
2022-05-11 13:48:31
...
[PHP]代码
<?php class checkcode { //图像句柄 private $img; //画布宽 public $width=85; //画布搞 public $height=25; //背景颜色 public $bg_color = "#DCDCDC"; //验证码 public $code; //验证码库 public $code_str = "sadhadh1ui2y9822ur2r9283r9rqdadqe12423reffqadfja09sdf0rpafashdfqwer98fqortFP89EDFIOQHFWEFTrgwfOGUsgdfKHAEFUHuqGR"; //验证码长度 public $code_len = 4; //验证码字体 public $font; //字体大小 public $font_size = 16; //字体颜色 public $font_color = "#ffffff"; /* * 构造函数 */ public function __construct() { $this->font = "font".DIRECTORY_SEPARATOR."arial.ttf"; } /* *验证码生成函数 */ private function create_code() { $code=" "; for($i=0;$i<$this->code_len;$i++) { $code.=$this->code_str[mt_rand(0,strlen($this->code_str)-1)]; } $this->code = $code; } /* *得到验证码 */ public function getcode() { return strtoupper($this->code); } /* * 创建图画句柄 */ public function getimg() { $w = $this->width; $h = $this->height; $img = imagecreatetruecolor($w,$h); $bg_color = imagecolorallocate($img,hexdec(substr($bg_color,1,2)),hexdec(substr($img,3,2)),hexdec(substr($img,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++){ imagettftext($this->img, $this->font_size, mt_rand(-30, 30), $x*$i+mt_rand(3,6), mt_rand($this->height/1.2,$this->height-5), $font_color, $this->font, $this->code[$i]); } $this->font_color = $font_color; } /* *写人干扰 */ private 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<2;$j++) { imagesetthickness($this->img,mt_rand(2,4)); 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); } } /* *显示代码 */ private function show_code(){ header("Content-type:image/png"); imagepng($this->img); imagedestroy($this->img); } } ?>
[PHP]代码
<?php class checkcode { //图像句柄 private $img; //画布宽 public $width=85; //画布搞 public $height=25; //背景颜色 public $bg_color = "#DCDCDC"; //验证码 public $code; //验证码库 public $code_str = "sadhadh1ui2y9822ur2r9283r9rqdadqe12423reffqadfja09sdf0rpafashdfqwer98fqortFP89EDFIOQHFWEFTrgwfOGUsgdfKHAEFUHuqGR"; //验证码长度 public $code_len = 4; //验证码字体 public $font; //字体大小 public $font_size = 16; //字体颜色 public $font_color = "#ffffff"; /* * 构造函数 */ public function __construct() { $this->font = "font".DIRECTORY_SEPARATOR."arial.ttf"; } /* *验证码生成函数 */ private function create_code() { $code=" "; for($i=0;$i<$this->code_len;$i++) { $code.=$this->code_str[mt_rand(0,strlen($this->code_str)-1)]; } $this->code = $code; } /* *得到验证码 */ public function getcode() { return strtoupper($this->code); } /* * 创建图画句柄 */ public function getimg() { $w = $this->width; $h = $this->height; $img = imagecreatetruecolor($w,$h); $bg_color = imagecolorallocate($img,hexdec(substr($bg_color,1,2)),hexdec(substr($img,3,2)),hexdec(substr($img,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++){ imagettftext($this->img, $this->font_size, mt_rand(-30, 30), $x*$i+mt_rand(3,6), mt_rand($this->height/1.2,$this->height-5), $font_color, $this->font, $this->code[$i]); } $this->font_color = $font_color; } /* *写人干扰 */ private 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<2;$j++) { imagesetthickness($this->img,mt_rand(2,4)); 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); } } /* *显示代码 */ private function show_code(){ header("Content-type:image/png"); imagepng($this->img); imagedestroy($this->img); } } ?>