PHP實(shí)現(xiàn)變色驗(yàn)證碼實(shí)例
更新時(shí)間:2014年01月06日 17:51:16 投稿:whsnow
驗(yàn)證碼想必大家都有見到過吧,在本文為大家介紹下PHP如何實(shí)現(xiàn)變色驗(yàn)證碼,感興趣的朋友可以參考下
復(fù)制代碼 代碼如下:
<?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);
//藍(lán)色
$blue=imagecolorallocate($im, 0, 0, 255);
$color_arr=array($green,$blue,$red);
$color=array_rand($color_arr);
$textlen=iconv_strlen($text,'utf-8');//計(jì)算字符串長度
//隨機(jī)截取兩個(gè)字符,變色顯示
$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不錯(cuò)的php Q扣峮:276167802,驗(yàn)證: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);
?>
驗(yàn)證碼中的字符并不是同一種顏色,讓用戶輸入指定顏色的驗(yàn)證碼,這樣安全性會(huì)更好的。
相關(guān)文章
php中關(guān)于codeigniter的xmlrpc的類在進(jìn)行數(shù)據(jù)交換時(shí)的類型問題
在使用codeigniter的xmlrpc類進(jìn)行客戶端/服務(wù)端請(qǐng)求應(yīng)答的時(shí)候,客戶端需要發(fā)送請(qǐng)求參數(shù)給服務(wù)端,服務(wù)端在接受到參數(shù)之后進(jìn)行參數(shù)分析,分拆參數(shù)之后分配給正確的方法進(jìn)行處理,處理之后反饋一個(gè)response給客戶端。2011-07-07php curl中g(shù)zip的壓縮性能測試實(shí)例分析
這篇文章主要介紹了php curl中g(shù)zip的壓縮性能測試,結(jié)合實(shí)例形式分析了php使用curl的gzip壓縮耗時(shí)與效率,需要的朋友可以參考下2016-11-11PHP數(shù)組相加操作及與array_merge的區(qū)別淺析
這篇文章主要給大家介紹了關(guān)于PHP數(shù)組相加操作以及與array_merge的區(qū)別,文中通過示例介紹的很詳細(xì),感興趣的朋友們可以參考學(xué)習(xí),有需要的下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。2016-11-11一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
以下是一些PHP Coding Tips. 當(dāng)然, 這些Tips并不一定僅僅局限于PHP.大家有什么好的心得, 歡迎直接回復(fù)本文與更多的人分享.. 謝謝2011-05-05php頁碼形式分頁函數(shù)支持靜態(tài)化地址及ajax分頁
這篇文章主要介紹了php頁碼形式分頁函數(shù),此分頁支持靜態(tài)化地址分頁和無鏈接地址時(shí)的ajax分頁,需要的朋友可以參考下2014-03-03一款簡單實(shí)用的php操作mysql數(shù)據(jù)庫類
這篇文章主要介紹了一款簡單實(shí)用的php操作mysql數(shù)據(jù)庫類,不但包含了php針對(duì)mysql數(shù)據(jù)庫的常見操作之外,還有針對(duì)危險(xiǎn)字符的過濾功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12php算開始時(shí)間到過期時(shí)間的相隔的天數(shù)
php算開始時(shí)間到過期時(shí)間的相隔的天數(shù),同理可以實(shí)現(xiàn)相隔年,小時(shí),分,秒等數(shù)2011-01-01