您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> php编程 >> 正文

PHP实现变色验证码实例

作者:佚名    责任编辑:admin    更新时间:2022-06-22

 验证码想必大家都有见到过吧,在本文为大家介绍下PHP如何实现变色验证码,感兴趣的朋友可以参考下

代码如下: <?php  header("Content-type: image/png,charset='utf-8'");  $im = imagecreatetruecolor(400, 30);  //白色  $white = imagecolorallocate($im, 255, 255, 255);  //红色  $red = imagecolorallocate($im, 255, 0, 0);  //黑色  $black=imagecolorallocate($im, 0, 0, 0);  //绿色  $green=imagecolorallocate($im, 0, 255, 0);  //蓝色  $blue=imagecolorallocate($im, 0, 0, 255);  $color_arr=array($green,$blue,$red);  $color=array_rand($color_arr);  $text = '我靠这验证码太变态啦';  $textlen=iconv_strlen($text,'utf-8');//计算字符串长度  //随机截取两个字符,变色显示  $p1=rand(1,$textlen)-1;  while(($p2=rand(1,$textlen)-1)==$p1);  $w1=iconv_substr($text,$p1,1,'utf-8');  $w2=iconv_substr($text,$p1,1,'utf-8');  //字体文件 (PS:T不错的php Q扣峮:276167802,验证:csl)  $font = 'simkai.ttf';  imagefilledrectangle($im, 0, 0, 399, 29, $white);  for($i=0;$i<$textlen;$i++)  {  if($i==$p1||$i==$p2)  {  imagettftext($im, 15, 0, 20*($i-1)+20, 20, $color_arr[$color], $font, iconv_substr($text,$i,1,'utf-8'));  }  else  {  imagettftext($im, 15, 0, 20*($i-1)+20, 20, $black, $font, iconv_substr($text,$i,1,'utf-8'));  }  }  imagepng($im);  imagedestroy($im);  ?>    验证码中的字符并不是同一种颜色,让用户输入指定颜色的验证码,这样安全性会更好的。