• PHP验证码类


    <?php 
    
    class verify{
    
    	//随机因子
    	private $text = 'abcdefghWddsdffgdWRFJKFJDFjjdfglkdfg883498Jhdsd9345345j340fg343o4j39d9t345j9dtej';
    
    	//验证码句柄资源
    	private $code;
    
    	//验证码长度
    	private $length = 4;
    
    	//验证码字体大小
    	private $size = 20;
    
    	//生成图像的高度
    	private $height = 30;
    
    	//验证码字体
    	private $font;
    
    	//图像资源句柄
    	private $image;
    
    	/**
    	 *	构造方法初始化
    	 */
    	public function __construct(){
    		$this->font = './static/fonts/msyh.ttf';
    	}
    
    	/**
    	 *	生成随机码
    	 */
    	private function createcode(){
    		$textlength = strlen($this->text)-1;
    		for($i=0; $i<$this->length; $i++){
    			$this->code .= $this->text[rand(0,$textlength)];
    		}
    	}
    
    	/**
    	 *	创建图像
    	 */
    	private function createimg(){
    		//创建画布
    		$this->image = imagecreatetruecolor($this->size*$this->length, $this->height);
    
    		//随机背景色
    		$color = imagecolorallocate($this->image, rand(0,255), rand(100,255), 175);
    
    		//创建矩形
    		imagefilledrectangle($this->image, 0, $this->height, $this->size*$this->length, 0, $color);
    	}
    
    	/**
    	 *	生成文字
    	 */
    
    	private function createtext(){
    		for($i=0;$i<$this->length;$i++){
    			$color = imagecolorallocate($this->image, 255, 255, 255);
    			imagettftext($this->image, $this->size, 0, 2, 25, $color, $this->font, $this->code);
    		}
    
    		//设置字符间距
    		//imagepsbbox($this->text, $this->font, $this->size);
    	}
    
    	/**
    	 *	生成干扰线 以及 $string字符
    	 */
    	private function createline(){
    		$string = '--';
    		for($i=0; $i<1; $i++){
    			$color = imagecolorallocate($this->image, rand(200,255), rand(200,255), rand(200,255));
    			imageline($this->image, rand(1,$this->size*$this->length), rand(1,$this->height), rand(1,$this->size*$this->length), rand(1,$this->height), $color);
    		}
    		for($i=0; $i<10; $i++){
    			$color = imagecolorallocate($this->image, rand(0,10), rand(50,150), rand(200,255));
    			imagestring($this->image, 1, rand(0,$this->size*$this->length), rand(0,$this->height), $string, $color);
    		}
    	}
    
    	/**
    	 *	输出图像
    	 */
    	private function outimage(){
    		header('content-type:image/png');
    		imagepng($this->image);
    		imagedestroy($this->image);
    	}
    
    	/**
    	 *	对外生成验证
    	 */
    	public function doimage(){
    		$this->createimg();
    		$this->createcode();
    		$this->createtext();
    		$this->createline();
    		$this->outimage();
    	}
    
    	//获取验证码  
    	public function getverify() {  
        	return strtolower($this->code);
        }
    
    }
    
    ?>
    

      

  • 相关阅读:
    mycat 查询sql 报错
    mysql 主从 binlog
    数据库分库分表思路
    JavaScript数组知识
    JS判断当前页面是在 QQ客户端/微信客户端/iOS浏览器/Android浏览器/PC客户端
    js汉字转换为拼音
    工作中常用到的JS验证
    自动部署服务器代码
    php Excel 导入
    PHP 模拟http 请求
  • 原文地址:https://www.cnblogs.com/chenshuo/p/3672101.html
Copyright © 2020-2023  润新知