
2014-06-26 &nb& ©≤sp;| 發☆₩✔σ布者:梁國(guó)芳  § ;| 查看(kàn):33δα20次
ThinkphpThink\Verify類可(kě)以支持驗€&→↕證碼的(de)生(shēng)成和(hé)驗證功能(néng)。
下(xià)面是(shì)最簡單的(de)方式生(shēng)成驗證碼:
$Verify = new \Think\Verify();$Verify->entry();
上(shàng)面的(de)代碼會(huì)生(shēng)成默認的(γ♣de)驗證碼圖片并輸出,顯示如(rú)下(xi©↑à):

生(shēng)成的(de)驗證碼信息會(huì)保存到(dào)sessi♦Ω∞∏on中,包含的(de)數(shù)據有(yǒu):
array('verify_code'=>'當前驗證碼的(de)值','verify_time'=>'驗證碼生(shēng)成的(de)時(shí)間(jiā÷¥→n)戳')
如(rú)果你(nǐ)需要(yào)在一(y☆★ī)個(gè)頁面中生(shēng)成多(duō)個(gè)驗證碼的(d§δe)話(huà),entry方法需要(yào)♦©δ 傳入可(kě)标識的(de)信息,例如(rú): 驗證碼1:
// 驗證碼1$Verify = new \Think\Verify();$Verify->entry(1);
驗證碼2:
// 驗證碼2$Verify = new \Think\Verify();$Verify->entry(2);
可(kě)以對(duì)生(shēng)成的(de)•★₹≠驗證碼設置相(xiàng)關的(de)參數(shù),以達到(dàoφ↕φ)不(bù)同的(de)顯示效果。 這(zhè)些(¥∏xiē)參數(shù)包括:
| 參數(shù) | 描述 |
|---|---|
| expire | 驗證碼的(de)有(yǒu)效期(秒(miǎo)) |
| useImgBg | 是(shì)否使用(yòng)背景圖片 默認為(wèi)false |
| fontSize | 驗證碼字體(tǐ)大(dà)小(xiǎo)(像φ∏≠素) 默認為(wèi)25 |
| useCurve | 是(shì)否使用(yòng)混淆曲線 默認為(wèi)true |
| useNoise | 是(shì)否添加雜(zá)點 默認為(wèi)true |
| imageW | 驗證碼寬度 設置為(wèi)0為(wèi)自(zì)動計(jì)算(su<♠×àn) |
| imageH | 驗證碼高(gāo)度 設置為(wèi)0為(wèi)自(zì)動計(jì)算★↕"σ(suàn) |
| length | 驗證碼位數(shù) |
| fontttf | 指定驗證碼字體(tǐ) 默認為(wèi)随機(jī)獲取 |
| useZh | 是(shì)否使用(yòng)中文(wén)驗證碼 |
| bg | 驗證碼背景顔色 rgb數(shù)組設置,例如♠≥(rú) array(243, 251, 254) |
| seKey | 驗證碼的(de)加密密鑰 |
| codeSet | 驗證碼字符集合 3.2.1 新增 |
| zhSet | 驗證碼字符集合(中文(wén)) 3.2.1 新增 |
參數(shù)設置使用(yòng)兩種方式。
實例化(huà)傳入參數(shù):
$config = array('fontSize' => 30, // 驗證碼字體(tǐ)大(dà)小(xiǎo)'length' => 3, // 驗證碼位數(shù)'useNoise' => false, // 關閉驗證碼雜(zá)點);$Verify = new \Think\Verify($config);$Verify->entry();
或者采用(yòng)動态設置的(de)方式,如(rú∞£€):
$Verify = new \Think\Verify();$Verify->fontSize = 30;$Verify->length = 3;$Verify->useNoise = false;$Verify->entry();
生(shēng)成的(de)驗證碼如(rú)圖所示:

默認情況下(xià),驗證碼的(de)字體(tǐ♥π)是(shì)随機(jī)使用(yòng) ThinkPHP/Library/Think/Verify/ttf →×s/目錄下(xià)面的(de)字體(tǐ)文(wén)件(jiàn),我們可(↑₽★kě)以指定驗證碼的(de)字體(tǐ),例如(rú):
$Verify = new \Think\Verify();// 驗證碼字體(tǐ)使用(yòng)¶" ThinkPHP/Library/Think¥×♦/Verify/ttfs/5.ttf$Verify->fontttf = '5.ttf';$Verify->entry();
支持驗證碼背景圖片功能(néng),可(k ÷ě)以如(rú)下(xià)設置:
$Verify = new \Think\Verify();// 開(kāi)啓驗證碼背景圖片功能(néng) 随機(jī)使用(yòng ) ThinkPHP/Library/Think/Verify/bgα≤✘s 目錄下(xià)面的(de)圖片$Verify->useImgBg = true;$Verify->entry();
效果如(rú)圖所示:

如(rú)果要(yào)使用(yòng)中文(wén)驗證碼,可(kě♠™★∏)以設置:
$Verify = new \Think\Verify();// 驗證碼字體(tǐ)使用(yòng) Thinkα PHP/Library/Think/Verify/ttfs/5♣φ.ttf$Verify->useZh = true;$Verify->entry();
顯示效果如(rú)圖:

如(rú)果無法正常顯示,請(qǐng)确認你(nǐ)←γ的(de) ThinkPHP/LibraryΩ&γ÷/Think/Verify/zhttfs§σπ/ 目錄下(xià)面存在中文(wén)字體(tǐ)文(wén)件(j←✘β≠iàn)。
3.2.1版本以上(shàng),我們可(kě)以指定驗證碼的<>¥♦(de)字符,通(tōng)過重新設置codeSet參數(shù)即可(kě),例如(rú)★×←:
$Verify = new \Think\Verify();// 設置驗證碼字符為(wèi)純數(shù ∞α)字$Verify->codeSet = '0123456789';$Verify->entry();
如(rú)果是(shì)中文(wén)驗證碼,可σ↓γ★(kě)以使用(yòng)zhSet參數(shù)設置,例如(rú):
$Verify = new \Think\Verify();$Verify->useZh = true;// 設置驗證碼字符$Verify->zhSet = '們以我到(dào)他(tā)會(huì)作(zuò)時(£≠≥→shí)要(yào)動國(guó)産的(de)一(yī)是(÷↑¥shì)工(gōng)就(jiù)年(nián)階£ &義發成部民(mín)可(kě)出能(néng)方進在了(le)不(bù)和πφ∑±(hé)有(yǒu)大(dà)這(zhè)★←€';$Verify->entry();
可(kě)以用(yòng)Think\Verify Ω類的(de)check方法檢測驗證碼的(de)輸入是(shì)否正确,例如(rú),下(xià→© £)面是(shì)封裝的(de)一(yī)個(gè)驗證碼檢測的♣Ω(de)函數(shù):
// 檢測輸入的(de)驗證碼是(shì)否正确,$code>>為(wèi)用(yòng)戶輸入的(de)驗證碼字符串function check_verify($code, $id = ''){$verify = new \Think\Verify();return $verify->check($code, $id);}
