ecstore源碼學習之三 驗證碼生成

2015-12-15 11:50:00
hainuo
原創 1908
摘要:ecstore中的PHP驗證碼生成組件詳解
# 説明1. 驗證碼組件默認爲gd庫生成1. 驗證碼組件位置爲`app/base/lib/vcode/gd.php`# 驗證碼生成原理1. 組成 包括PHP代碼`gd.php`和png圖片文件夾`/Users/fengliu/pingang/public/app/base/statics/code`1. gd類先通過執行`length()`方法生成一箇數組,數組包含這次驗證碼的png圖片路徑和順序1. gd類通過執行`display()`方法輸齣圖像數據# 註意事項1. 圖像生成時有一箇bug```foreach($arr as $i=>$filename){ list($w, $h) = getimagesize($filename); $source = imagecreatefrompng($filename); $t_id = imagecolortransparent($source); $rotate = imagerotate($source, rand(-20,20),$t_id); $w2 = $w*$baseH/$h; imagecopyresized($image, $rotate, $x, 0, 0, 0, $w2, $baseH, $w, $h); imagedestroy($source); imagedestroy($rotate); $x+=$w2; }```需要特彆註意這箇 `$t_id`,在PHP7下 這樣寫返迴值爲-1,也就是圖片中沒有透明色綵。解決辦法是這樣 ```if($t_id<0) $t_id = imagecolorallocatealpha($source, 0, 0, 0, 100);```2. ecstore這箇框架真的不是多麽好玩。
發錶評論
陸 加 零 =
評論通過審核後顯示。