手机版

PHP封装的验证码工具类定义及使用示例

时间:2021-08-30 来源:互联网 编辑:宝哥软件园 浏览:

本文说明了PHP封装的验证码工具类的定义和用法。分享给大家参考,如下:

下面分享的是我自己打包的验证码工具类,在平时的项目中经常用到。如果需要,合作伙伴可以使用目前打包的这个工具类的简化版本。当然,我建议用之前。向配置文件中添加一些选项信息。

//验证码的宽度private $ width//验证码身高私$身高;//私有验证次数$ length//干扰点数量私人$ dots//干扰点的类型私有$ type//干扰线路数专用$线路;//文本私有$ font方便在项目中更改验证码的要求,以满足项目逻辑的需要,验证码选择的字体需要和验证码工具类放在同一个目录中,否则必须在配置文件中修改字体路径,才能实现验证码的显示

?php/创建验证码工具类类验证码{ //验证码的各种参数//验证码宽度private $ width//验证码高度二等兵$身高;//验证的个数私人$ length//干扰点个数私人$ dots//干扰点的类型私人$类型;//干扰线个数私人$线路;//文字私人$字体;//验证码属性的构造方法public function _ _ construct($ arr=array()){//将属性赋值$ this-width=isset($ arr[' width '])?装饰件($ arr[' width ']): ' 270 ';$ this-height=isset($ arr[' height '])?装饰件($arr['高度']): ' 30 ';$ this-length=isset($ arr[' length '])?trim($ arr[' length ']): ' 4 ';$this-dots=isset ($arr['dots'])?trim($ arr[' dots ']): ' 81 ';$this-type=isset ($arr['type'])?trim($ arr[' type ']): ' *;$ this-line=isset($ arr[' line '])?trim($ arr[' line ']): ' 5 ';$this-font=isset ($arr['font'])?trim(:美元)./cambriab。' TTF ';} //创建验证码的方法公共函数验证码(){ //创建画布$ img=imagecreatetrue color($ this-width,$ this-height);//填充颜色//颜色资源$ color=imagecolorable($ img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));//填充背景imagefill($img,0,0,$ color);//添加干扰点对于($ I=0;$ I $ this-dots;$i ) { //颜色资源$ dots _ color=image color allocate($ img,mt_rand(150,200),mt_rand(150,200),mt_rand(150,200));//插入干扰点imagestring($img,mt_rand(1,5),mt_rand(0,$this-width),mt_rand(0,$this-height),$this-type,$ dots _ color);} //添加干扰线对于($ I=0;$ I $这条线;$i ) { //颜色资源$ line _ color=imagecolorable($ img,mt_rand(150,200),mt_rand(150,200),mt_rand(150,200));//插入干扰线imageline($img,mt_rand(0,$this-width),mt_rand(0,$this-height),mt_rand(0,$this-width),mt_rand(0,$this-height),$ line _ color);} //首先获取验证码,然后插入验证文字//文字高度$size=mt_rand(18,20);//获取验证码$ str=$ this-captchstring();对于($ I=0;$ I strlen($ str);$i ) { //颜色资源$ str _ color=imagecolorable($ img,mt_rand(50,150),mt_rand(50,150),mt_rand(50,150));//插入验证码imagettftext($img,$size,mt_rand(-45,45),$ this-width/($ this-length 2)*($ I-1)、($this-height - $size)/2) $size,$str_color,$this-font,$ str[$ I]);} //将得到的验证码存入会议中,便于以后的验证码判断@ session _ start();$ _ SESSION[' captcha ']=$ str;//输出图片标头(“内容类型:图像/png”);图像png($ img);//清除资源图像销毁($ img);} //获取随机的验证内容:A-Z,A-Z,1-9私有函数验证码字符串(){ //获取四个随机的字符串$ str=for($ I=0;一美元这个长度;$i ) { switch (mt_rand(1,3)) { case 1 : $str .=chr(mt_rand(49,57));打破;案件2 :美元=chr(mt_rand(97,122));打破;案例3 :美元=chr(mt_rand(65,90));打破;} }返回$ str} //判断验证码公共静态函数check captcha($ captcha){ @ session _ start();返回str topol($ captcha)==str topol($ _ SESSION[' captcha ']);}}//使用方法:$img=新验证码();//这里采用默认参数$ img-captcha();运行结果:

注:代码中用到的字体为cambriab.ttf可完整实例代码点击此处本站下载。

更多关于服务器端编程语言(专业超文本预处理器的缩写)相关内容感兴趣的读者可查看本站专题: 《PHP图形与图片操作技巧汇总》 、 《PHP数学运算技巧总结》 、 《PHP基本语法入门教程》 、 《PHP运算与运算符用法总结》 、 《php面向对象程序设计入门教程》 、 《PHP数组(Array)操作技巧大全》 及《php字符串(string)用法总结》

希望本文所述对大家服务器端编程语言(专业超文本预处理器的缩写)程序设计有所帮助。

版权声明:PHP封装的验证码工具类定义及使用示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。