PHP 实现图片验证码
生活随笔
收集整理的這篇文章主要介紹了
PHP 实现图片验证码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
PHP 實現圖片驗證碼
步驟
產生隨機字符串
創建一張簡單的圖片,設置背景色,文本色
再加一些干擾線,干擾素
輸出圖像
銷毀圖像資源
<?php//PHP生成圖片驗證碼class VerifyImage{private $verifyCode;private $image;//生成隨機字串private function createCode($type=1,$length=4){if ($type == 1) {$verifyCode = implode('', range(0, 9));}elseif ($type == 2) {$verifyCode = implode('', array_merge(range('a', 'z'),range('A', 'Z')));}else{$verifyCode = implode('', array_merge(range('a', 'z'),range(0, 9),range('A', 'Z')));}//判斷生成字符是否符合要求if (strlen($verifyCode)<$length) {return false;}//打亂字符串$verifyCode = str_shuffle($verifyCode);return substr($verifyCode, 0,$length);}//生成圖片,并加入干擾線,干擾素public function createImage($type=1,$length=4,$width = 80,$height = 40){$verifyCode = $this->createCode($type,$length);$image = imagecreatetruecolor($width, $height);//白色背景$white = imagecolorallocate($image, 255, 255, 255);//字體顏色$fontStyle = imagecolorallocate($image, rand(0, 255),rand(0, 255), rand(0, 255));;imagefill($image, 0, 0, $white);imagestring($image, 5, 10, 10, $verifyCode, $fontStyle);//加入干擾點for($i = 0; $i < 80; $i++) { $color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255)); imagesetpixel($image, rand(0, $width), rand(0,$height), $color); }//干擾線 for($i = 0; $i < 5; $i++) { $color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255)); imageline($image, rand(0, $width), rand(0, $height), rand(0, $width), rand(0, $height), $color); } //輸出圖片header("Content-type: image/png"); imagepng($image);//釋放資源imagedestroy($image);} }$im = new VerifyImage();; $im->createImage(3);?>?
總結
以上是生活随笔為你收集整理的PHP 实现图片验证码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 红石32位cpu通用计算机,我的世界无命
- 下一篇: PHP数组的排序函数