驗證碼想必大家都有見到過吧,在本文為大家介紹下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); ?> 驗證碼中的字符並不是同一種顏色,讓用戶輸入指定顏色的驗證碼,這樣安全性會更好的。