介绍
这篇文章给大家分享的是有关PHP如何实现简易的汉字验证码的思路的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
现在越来越多的网站都开始使用汉字验证码了,既增加了我们国人的亲切感,同时也增加了机器破解的难度,这里我就简单粗暴的说一下。
<强>创建背景画布强>
$图像=imagecreatetruecolor (200、60); (背景=imagecolorallocate美元形象,255年,255年,255年); imagefill($形象,0,0,美元背景);
<强>画干扰点强>
,($ i=0;美元我& lt;300;$我+ +){ (pixColor=imagecolorallocate美元形象,兰德(150、240),兰德(150、240),兰德(150、240)); $ pixX=兰德(190); 调皮捣蛋的美元=兰德(55); imagesetpixel(形象,pixX美元,调皮捣蛋的美元,美元pixColor); }
<>强画干扰线强>
//4条水平线 ($ i=0;美元我& lt;5;$我+ +){ (lineColor=imagecolorallocate美元形象,兰德(150),兰德(150),兰德(150); 美元lineX1=0; lineX2=300美元; lineY1=美元($ i + 1) * 12; lineY2=美元($ i + 1) * 12; imageline(形象,lineX1美元lineY1美元,美元lineX2, lineY2美元,美元lineColor); }//10条垂直线 ($ i=0;美元我& lt;30;$我+ +){ (lineColor=imagecolorallocate美元形象,兰德(150),兰德(150),兰德(150); lineX1=美元($ i + 1) * 10; lineX2=美元($ i + 1) * 10; 美元lineY1=0; lineY2=60美元; imageline(形象,lineX1美元lineY1美元,美元lineX2, lineY2美元,美元lineColor); }
<>强画汉字强>
$=文本数组(& # 39;栀& # 39;& # 39;子& # 39;,& # 39;花& # 39;,& # 39;开& # 39;); ($ i=0;美元我& lt;4;$我+ +){ (输入textColor=imagecolorallocate美元形象,兰德(100),兰德(100),兰德(100); textX=我* 50 + 10美元; $ textY=兰德(40、60); imagettftext($形象,30,兰德(20、50),textX美元,美元textY,输入textColor美元,“/图书馆/字体/华文仿宋.ttf",美元文本($ i)); }
这里注意一下,字体文件一定要支持中文的
编码要使用utf - 8, gbk的中文记得要转吗【iconv函数可以帮助你】
<强>输出图像强>
头(“内容类型:图像/png"); imagepng图像($);
<>强销毁资源强>
imagedestroy图像($);
经过粗略的搞吧搞吧,中文验证码也就显示出来了,当然一般网站使用的时候会有一个汉字库种子,从里面随机取出特定个数的汉字显示,最后就是记录到会话进行验证了。