PHP天生验证码的类代码,本验证码类支持天生滋扰点、滋扰线等滋扰像素,还能够使字符歪斜。正在类中你能够界说验证码宽度、高度、长度、歪斜角度等参数,后附有具体用法:
<?php class class_authcode{ public $authcode = ''; //验证码 private $width = ''; //验证码图片宽 private $height = ''; //验证码图片高 private $len = ''; //验证码长度 private $tilt = array(-30,30);//验证码歪斜角度 private $font = 'AlteHaasGroteskBold.ttf';//字体文件 private $str = ''; //验证码基 private $im = ''; //天生图片的句柄 //结构函数 function __construct($width=100,$heigh=30,$len=4) { $this->width = $width; $this->height = $heigh; $this->len = $len; $this->str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; $str_len = strlen($this->str)-1; for ($i=0; $i<$len; $i++) { $this->authcode .= $this->str[rand(0,$str_len)]; } } //天生验证码图片 private function imagecreate(){ $this->im = imagecreatetruecolor($this->width,$this->height); } //滋扰颜色 private function ext_color() { return imagecolorallocate($this->im,rand(50, 180),rand(50, 180),rand(50, 180)); } //天生滋扰点 private function ext_point() { for ($i=0; $i<$this->width*2; $i++) { imagesetpixel($this->im,rand(1,$this->width-1),rand(1,$this->height-1),$this->ext_color()); } } //天生滋扰线 private function ext_line() { for ($i=0; $i<$this->len; $i++) { $x1 = rand(1,$this->width-1); $y1 = rand(1,$this->height-1); $x2 = rand(1,$this->width-1); $y2 = rand(1,$this->height-1); imageline($this->im,$x1,$y1,$x2,$y2,$this->ext_color()); } } //把验证码写入图片(不克不及以及$this->imgstrfloat()同时应用) private function imgstr() { $old_x = 1; for ($i=0; $i<$this->len; $i++) { $fontsize = rand(2,5); //字体巨细 $tmp_1 = $fontsize*2.5; $tmp_2 = $i>0 $tmp_1 : 0; $y = rand(1,$this->height/2); $x = rand($old_x+$tmp_2, ($i+1)*($this->width)/$this->len-$tmp_1); $old_x = $x; $color = imagecolorallocate($this->im,rand(200, 255),rand(200, 255),rand(200, 255)); imagestring($this->im,$fontsize,$x,$y,$this->authcode[$i],$color); } } //把验证码歪斜写入图片(留意这里不克不及以及$this->imgstr()办法同时应用) private function imgstrfloat() { $old_x = 1; for ($i=0; $i<$this->len; $i++) { $fontfloat = rand($this->tilt[0],$this->tilt[1]); $fontsize = rand(10,15); //字体巨细 $tmp_1 = $i>0 $fontsize : 0; $y = rand($fontsize+2, $this->height-2); $x = rand($old_x+$tmp_1+2, ($i+1)*($this->width)/$this->len-$fontsize-2); $old_x = $x; $color = imagecolorallocate($this->im, rand(200, 255), rand(200, 255), rand(200, 255)); imagettftext($this->im, $fontsize, $fontfloat, $x, $y, $color, $this->font, $this->authcode[$i]); } } //输入验证码图片 function output() { $this->imagecreate(); $this->imgstr(); //$this->imgstrfloat(); $this->ext_point(); $this->ext_line(); header('content-type:image/png'); imagepng($this->im); imagedestroy($this->im); } } ?>
本验证码用法阐明:
$obj = new class_authcode();//实例化工具,并设置验证码图片的宽、高以及验证码的长度 $obj->$authcode; //猎取验证码 $obj->output(); //输入验证码图片
以上就是PHP天生验证码的类代码,有余的地方请指出。
更多相干PHP成绩请拜访PHP中文网:https://www.php.cn/
以上就是应用PHP天生带有滋扰线的验证码,滋扰点、字符歪斜具体类代码的具体内容,更多请存眷资源魔其它相干文章!
标签: 验证码 php开发教程 php开发资料 php开发自学
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!