PHP面向对象简易验证码类如何实现

  

PHP面向对象简易验证码类如何实现?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

& lt; PHP ?   类验证码   {   私有静态实例美元=零;#实例对象   私人宽度=120美元;#图片宽度   私人身高=40美元;#图片高度=& # 39;字体私人美元/elephant.ttf& # 39;;#字体文件路径   私人美元字形大?14;#字体大小   私人strLen美元=6;#字符个数   私人auth_code_str美元=零;#验证码结果   私人imgResult美元=零;#图片资源      #入口文件静态方法调用实例化对象可用对象方法调用   公共静态img()函数   {   如果(!自我(self:: $实例运算符)){   自我::$实例=新自我();   }   返回self:: $实例;   }      #随机颜色   私有函数randomColor (img=零,最小值=0美元,max=255美元)   {   rgb美元=[];   (i=1美元;我& lt;美元=3;$我+ +){   rgb美元[]=str_pad(兰德(min,马克斯美元),3,0,STR_PAD_LEFT);   }   返回imagecolorallocate (img, rgb美元[0],rgb[1]美元,美元rgb [2]);   }      #随机字符串   私有函数randomStr (num=4美元)   {   如果(num比美元;0){   $ string=array_merge(范围(& # 39;一个# 39;,& # 39;z # 39;),范围(0,9),范围(& # 39;一个# 39;& # 39;z # 39;),范围(0,9));   (i=1美元;我& lt;美元=$ num;$我+ +){   洗牌($ string);   $ this→auth_code_str。=最后($ string);   }   }   返回这个美元;   }      #创建验证码   公共函数createAuthCode(和codeStr=false美元)   {   如果(! $ this→auth_code_str) {   $ this→randomStr ($ this→strLen);   }   if ($ codeStr !==false,,空(codeStr美元)){   codeStr=这→美元auth_code_str;   }else if(!空(codeStr美元),,$ codeStr !==false) {   $ this→auth_code_str=$ codeStr;   }   $ this→imgResult=imagecreatetruecolor ($ this→宽度、$ this→高度);   背景=这→美元randomColor ($ this imgResult的话,200);   imagefilledrectangle ($ this→imgResult 0 0, $ this→宽度、$ this→高度,美元背景);   (y=美元这→高度-这→美元字形大小);   字符串函数=美元($ this→auth_code_str, 1);   ($ i=0;美元我& lt;count ($ string);$我+ +){   frontColor=这→美元randomColor ($ this→imgResult, 0, 200);   imagefttext ($ this→imgResult,美元这→字形大小,兰德(0,10)($ this→字形大小+ 2)* + 10美元,美元y, frontColor美元,美元这→字体,$ string [$ i]);   }   返回这个美元;   }      #生成线   公共职能线($=3行)   {   $=$线:3;   (i=1美元;我& lt;美元=$行;$我+ +){   lineColor=这→美元randomColor ($ this→imgResult, 0, 200);   imageline ($ this→imgResult,兰德(0,美元这→宽度/5),兰德(5 $ this→高度- 5),兰德($ this→宽度/1.3,$ this→宽度),兰德(5 $ this→高度- 5),lineColor美元);   }   返回这个美元;   }      #噪点   公共函数像素(num=50美元){   num=num美元?:3;   (i=1美元;我& lt;美元=$ num;$我+ +){   lineColor=这→美元randomColor ($ this→imgResult, 0, 100);   imagesetpixel ($ this→imgResult,兰德(0,美元这→宽度),兰德(0,美元这→高度),lineColor美元);   }   返回这个美元;   }      #设置大小   公共函数大小(宽度=null,身高=null)美元   {   $ this→宽度=$宽度:120;=$ $ this→高度高度?:40;   返回这个美元;   }      #设置字体大小   公共函数字形大小($字形大?14)   {   $ this→字形大?$字形大小:14;   返回这个美元;   }      #设置字体   公共函数字体($ file=null)   {   如果(is_null(文件)美元===true) {   $ this→字体=& # 39;字体/elephant.ttf& # 39;;   其他}{   $ this→字体=$文件;   }   返回这个美元;   }      #设置长度   公共函数strlen (num美元=null)   {   $ this→strLen=$ num ?: 6;   返回这个美元;   }      公共函数显示()   {   ob_end_flush ();   头(“内容类型:图像/jpeg");   imagejpeg ($ this→imgResult, null, 100);   imagedestroy ($ this→imgResult);   退出;   }   }      #简单调用方法   验证码::img ()→createAuthCode()→显示();/*   #指定字符串调用   $ string=& # 39; abc123 # 39;;   验证码::img ()→createAuthCode ($ string)→显示();      #设置图片大小,字数,字体大小   验证码::img ()→strlen(8)→规模(300100)→字形大小(30)→createAuthCode()→显示();      #添加噪点   验证码::img ()→createAuthCode()→线()→像素()→显示();   */?在

PHP面向对象简易验证码类如何实现