国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

非常實用的php驗證碼類

2024-05-04 23:46:00
字體:
供稿:網(wǎng)友
這篇文章主要為大家分享了非常實用的php驗證碼類,感興趣的小伙伴們可以參考一下
 

本文實例為大家分享了php驗證碼類,供大家參考,具體內(nèi)容如下

<?php /**  *  * @author Administrator  *  */ class ValidateCode{      private $width;   private $height;   private $codeNum;   private $img_resouce;   private $disturbColorNum;   private $checkCode;      function __construct($width=80,$height=20,$codeNum=4) {     $this->width=$width;     $this->height=$height;     $this->codeNum=$codeNum;     $this->checkCode=$this->CreateCheckCode();     $number=floor($width*$height/25);     if ($number>240-$codeNum) {       $this->disturbColorNum=240-$codeNum;     }else{       $this->disturbColorNum=$number;     }   }      public function showImage($fontpath='') {     //創(chuàng)建圖像背景     $this->Img_resouce();     //var_dump($img_resouce);     //設(shè)置干擾元素     $this->setDistructcolor();     //向圖像中隨機畫出文本     $this->outputtext($fontpath);     //輸出圖像     $this->outputimage();   }   /**    *    *獲取隨機創(chuàng)建的驗證碼    */   public function getCheckCode(){        }   private function Img_resouce(){     //創(chuàng)建一個真彩圖像     $this->img_resouce=imagecreatetruecolor($this->width,$this->height);     //隨機設(shè)置圖像背景     $backcolor=imagecolorallocate($this->img_resouce,rand(225,255),rand(225,255),rand(225,255));     //填充顏色     imagefill($this->img_resouce, 0, 0, $backcolor);     //設(shè)置邊框背景     $border=imagecolorallocate($this->img_resouce, 0,0,0);     //畫一個矩形     imagerectangle($this->img_resouce,0,0,$this->width-1,$this->height-1,$border);   }   private function setDistructcolor(){     //繪畫干擾點     for ($i = 0; $i <$this->disturbColorNum; $i++) {              imagesetpixel($this->img_resouce, rand(1, $this->width-2), rand(1, $this->height-2), rand(0,255));     }          //繪畫干擾線     for ($j = 0; $j <3; $j++) {       $linecolor=imagecolorallocate($this->img_resouce,rand(0,255),rand(0,255),rand(0,255));       imagearc($this->img_resouce, rand(0,$this->width), rand(0,$this->height),        rand(10, 225), rand(20, 150),        55, 44, $linecolor);     }   }   private function CreateCheckCode(){     $code='23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKMNPQRSTUVWXYZ';     $string='';     for ($i = 0; $i < $this->codeNum; $i++) {              $char=$code{rand(0, strlen($code)-1)};       $string.=$char;     }     return $string;   }   private function outputtext($fontpath=''){     for ($i = 0; $i < $this->codeNum; $i++) {       $fontcolor=imagecolorallocate($this->img_resouce, rand(0,128), rand(0, 128), rand(0, 128));       if ($fontpath=='') {                   $fontsize=rand(3, 5);          $x=floor($this->width/$this->codeNum)*$i+3;          $y=rand(0, $this->height-20);          imagechar($this->img_resouce, $fontsize, $x, $y, $this->checkCode{$i}, $fontcolor);     }else{          $fontsize=rand(12, 16);          $x=floor(($this->width-8)/$this->codeNum)*$i+8;          $y=rand($fontsize, $this->height-15);          imagettftext($this->img_resouce,$fontsize,rand(-45,45),$x,$y,$fontcolor,fontpath,$this->checkCode{$i});        }     }   }   private function outputimage() {          if (imagetypes() & IMG_GIF) {       header("Content-type: image/gif");       imagegif($this->img_resouce);     }else if(imagetypes() & IMG_JPEG) {       header("Content-type: image/jpeg");       imagejpeg($this->img_resouce);     }else if(imagetypes() & IMG_PNG) {       header("Content-type: image/png");       imagepng($this->img_resouce);     }else {       echo "PHP不支持的類型";     }             }   private function __destruct(){          imagedestroy($this->img_resouce);   } } ?>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。



注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 汉川市| 太和县| 文山县| 天津市| 青河县| 封丘县| 千阳县| 北川| 石楼县| 烟台市| 宝丰县| 兴安盟| 尼木县| 五莲县| 竹北市| 黄石市| 宕昌县| 滁州市| 武冈市| 巴青县| 宁南县| 澜沧| 元江| 长武县| 虞城县| 滦平县| 科技| 南木林县| 双流县| 清河县| 巫溪县| 东光县| 定陶县| 景宁| 砚山县| 甘泉县| 上林县| 上饶县| 上饶县| 甘德县| 台山市|