下面是我整理出來的php 驗證碼封裝類,有興趣的話,不妨看一看
<?php /** *驗證碼封裝類 */ class CaptchaLib { private $length; //驗證碼長度 private $font=5; //內建字型大小 1,2,3,4,5 //通過建構函式賦值 public function construct($length=4,$font=5) { $this->length=$length; $this->font=$font; } //產生隨機字串 private function generalCode() { $char_array=array_merge(range('A','Z'),range('a','z'),range(0,9));//產生一個字母和數位數組 $index=array_rand($char_array,$this->length); //隨機取4個字元,返回的是字元下標 shuffle($index); //打亂下標 //拼接字串 $str=''; foreach($index as $i) { $str.=$char_array[$i]; } return $str; } //產生驗證碼 public function generalCaptcha() { $str=$this->generalCode(); //開啟背景圖 $bg_path='./captcha/captcha_bg'.rand(1,5).'.jpg'; //背景圖地址 5張隨機背景圖片 $img=imagecreatefromjpeg($bg_path); //開啟圖片 //定義前景色彩 $color=imagecolorallocate($img,0,0,0); if(rand(1,2)==2) $color=imagecolorallocate($img,255,255,255); //將字串寫到圖片上 $x=(imagesx($img)-imagefontwidth($this->font)*strlen($str))/2; $y=(imagesy($img)-imagefontheight($this->font))/2; imagestring($img,$this->font,$x,$y,$str,$color); header('content-type:image/png'); imagepng($img); imagedestroy($img); } } //測試 $captcha=new CaptchaLib(8,4); $captcha->generalCaptcha();
上面是我整理給大家的,希望今後會對大家有協助。
相關文章:
重寫與多態的要點分析解答
如何在js重寫padleft方法
在js 中的有哪幾種繼承方法