PHP实现简单汉字验证码

前端之家收集整理的这篇文章主要介绍了PHP实现简单汉字验证码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

现在越来越多的网站都开始使用汉字验证码了,既增加了我们国人的亲切感,同时也增加了机器破解的难度,这里我就简单粗暴的说一下。。。

创建背景画布

PHP;"> $image = imagecreatetruecolor(200,60); $background = imagecolorallocate($image,255,255); imagefill($image,$background);

画干扰点

PHP;"> for ($i=0; $i < 300; $i++) { $pixColor = imagecolorallocate($image,rand(150,240),240)); $pixX = rand(10,190); $pixY = rand(5,55); imagesetpixel($image,$pixX,$pixY,$pixColor); }

画干扰线

PHP;"> //4条水平线 for ($i=0; $i < 5; $i++) { $lineColor = imagecolorallocate($image,rand(50,150),150)); $lineX1 = 0; $lineX2 = 300; $lineY1 = ($i + 1) * 12; $lineY2 = ($i + 1) * 12; imageline($image,$lineX1,$lineY1,$lineX2,$lineY2,$lineColor); }

//10条垂直线
for ($i=0; $i < 30; $i++) {
$lineColor = imagecolorallocate($image,150));
$lineX1 = ($i + 1) 10;
$lineX2 = ($i + 1)
10;
$lineY1 = 0;
$lineY2 = 60;
imageline($image,$lineColor);
}

画汉字

PHP;"> $text = array('栀','子','花','开'); for ($i=0; $i < 4; $i++) { $textColor = imagecolorallocate($image,rand(20,100),100)); $textX = $i * 50 + 10; $textY = rand(40,60); imagettftext($image,30,50),$textX,$textY,$textColor,"/Library/Fonts/华文仿宋.ttf",$text[$i]); }

这里注意一下,字体文件一定要支持中文

编码要使用utf-8,gbk的中文记得要转吗【iconv函数可以帮助你】

输出图像

PHP;"> header("Content-Type:image/png"); imagepng($image);

销毁资源

PHP;"> imagedestroy($image);

经过粗略的搞吧搞吧,中文验证码也就显示出来了,当然一般网站使用的时候会有一个汉字库种子,从里面随机取出特定个数的汉字显示,最后就是记录到session进行验证了。

以上所述就是本文的全部内容了,希望大家能够喜欢。

原文链接:https://www.f2er.com/php/21434.html

猜你在找的PHP相关文章