PHP生成中文驗證碼並檢測對錯實例,中文驗證碼的例子還是比較少的,今天給大家分享一下,支持自定義中文、字體、背景色等
生成驗證碼,注意font字體路徑要對,否則顯示圖片不存在
session_start();
//1>設置驗證碼圖片大小的函數
$image = imagecreatetruecolor(200, 60);
//5>設置驗證碼顏色 imagecolorallocate(int im, int red, int green, int blue);
$bgcolor = imagecolorallocate($image, 255, 255, 255); //#ffffff
//6>區域填充 int imagefill(int im, int x, int y, int col) (x,y) 所在的區域着色,col 表示欲塗上的顏色
imagefill($image, 0, 0, $bgcolor);
//7>設置ttf字體
$fontface = 'simhei.ttf';
//7>設置字庫,實現簡單的數字儲備
$str = '天地不仁以萬物爲芻狗聖人不仁以百姓爲芻狗這句經常出現在控訴暴君暴政上地殘暴不仁把萬物都當成低賤的豬狗來看待而那些高高在上的所謂聖人們也沒兩樣還不是把我們老百姓也當成豬狗不如的東西但實在正取的解讀是地不情感用事對萬物一視同仁聖人不情感用事對百姓一視同仁執子之手與子偕老當男女主人公含情脈脈看着對方說了句執子之手與子偕老女方淚眼朦朧含羞地回一句討厭啦這樣的情節我們是不是見過很多但是我們來看看這句的原句死生契闊與子成說執子之手與子偕老於嗟闊兮不我活兮于嗟洵兮不我信兮意思是說戰士之間的約定說要一起死現在和我約定的人都走了我怎麼活啊赤裸裸的兄弟江湖戰友友誼啊形容好×××的基情比男女之間的愛情要合適很多吧';
//str_split()切割字符串爲一個數組,一箇中文在utf_8爲3個字符
$strdb = str_split($str, 3);
//>11
$captcha_code = '';
//8>生成隨機的漢子
for ($i = 0; $i < 4; $i++) {
//設置字體顏色,隨機顏色
$fontcolor = imagecolorallocate($image, rand(0, 120), rand(0, 120), rand(0, 120)); //0-120深顏色
//隨機選取中文
$in = rand(0, count($strdb));
$cn = $strdb[$in];
//將中文記錄到將保存到session的字符串中
$captcha_code .= $cn;
/* imagettftext (resource $image ,float $size ,float $angle ,int $x ,int $y,int $color,
string $fontfile ,string $text ) 幕布 ,尺寸,角度,座標,顏色,字體路徑,文本字符串
mt_rand()生成更好的隨機數,比rand()快四倍 */
imagettftext($image, mt_rand(20, 24), mt_rand(-60, 60), (40 * $i + 20), mt_rand(30, 35), $fontcolor, $fontface, $cn);
}
//11>存到session
$_SESSION['sucaihuo_code'] = $captcha_code;
-
Ajax檢測驗證碼
function checkCode() {
$.post("ajax.php", {code: $("#input_code").val()}, function(data) {
if (data == '1') {
alert("驗證碼正確!");
} else {
alert("驗證碼錯誤!");
}
}, "json")
}
本文轉自https://www.sucaihuo.com/php/550.html 轉載請註明出處!