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

2015-12-15 11:50:00
hainuo
原創 2002
摘要: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這箇框架真的不是多麽好玩。
發錶評論
捌 乘 捌 =
評論通過審核後顯示。