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

首頁(yè) > 開(kāi)發(fā) > PHP > 正文

個(gè)人寫的PHP驗(yàn)證碼生成類分享

2024-05-04 23:25:11
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了個(gè)人寫的PHP驗(yàn)證碼生成類分享,此驗(yàn)證碼類直接拿去就可以用,也可以用來(lái)學(xué)習(xí)和分析,需要的朋友可以參考下
 
 

此驗(yàn)證碼類直接拿去就可以用,也可以參考!

其中類成員codestr是生成的驗(yàn)證碼字符串:

<?php/** * 驗(yàn)證碼 */class Code{   // 1. 定義各個(gè)成員 有寬、高、畫(huà)布、字?jǐn)?shù)、類型、畫(huà)類型     private $width; //寬度  private $height; //高度  private $num; //驗(yàn)證碼字?jǐn)?shù)  private $imgType; //生成圖片類型  private $Type; //字串類型 1,2,3 三個(gè)選項(xiàng) 1 純數(shù)字 2 純小寫字母 3 大小寫數(shù)字混合  private $hb; //畫(huà)布  public $codestr; // 驗(yàn)證碼字串   public function __construct($height=20,$num=4,$imgType="jpeg",$Type=1){    $this->width = $num*20;    $this->height = $height;    $this->num = $num;    $this->imgType = $imgType;      $this->Type = $Type;     $this->codestr = $this->codestr();    $this->zuhe();  }   // 2. 定義隨機(jī)獲取字符串函數(shù)  private function codestr(){    switch($this->Type){           case 1:   // 類型為1 獲取1-9隨機(jī)數(shù)        $str = implode("",array_rand(range(0,9),$this->num));        break;      case 2:   // 類型為2 獲取a-z隨機(jī)小寫字母        $str = implode("",array_rand(array_flip(range(a,z)),$this->num));        break;      case 3:   // 類型為3 獲取數(shù)字,小寫字母,大寫字母 混合        for($i=0;$i<$this->num;$i++){          $m = rand(0,2);          switch($m){            case 0:              $o = rand(48,57);              break;            case 1:              $o = rand(65,90);              break;            case 2:              $o = rand(97,122);              break;           }          $str .= sprintf("%c",$o);        }        break;         }          return $str;    }    // 3. 初始化畫(huà)布圖像資源  private function Hb(){    $this->hb = imagecreatetruecolor($this->width,$this->height);   }   // 4. 生成背景顏色  private function Bg(){    return imagecolorallocate($this->hb,rand(130,250),rand(130,250),rand(130,250));   }   // 5. 生成字體顏色  private function Font(){    return imagecolorallocate($this->hb,rand(0,100),rand(0,100),rand(0,100));    }   // 6. 填充背景顏色  private function BgColor(){    imagefilledrectangle($this->hb,0,0,$this->width,$this->height,$this->Bg());   }   // 7. 干擾點(diǎn)  private function ganrao(){    $sum=floor(($this->width)*($this->height)/3);    for($i=0;$i<$sum;$i++){      imagesetpixel($this->hb,rand(0,$this->width),rand(0,$this->height),$this->Bg());      }  }   // 8. 隨機(jī)直線 弧線  private function huxian(){    for($i=0;$i<$this->num;$i++){      imageArc($this->hb,rand(0,$this->width),rand(0,$this->height),rand(0,$this->width),rand(0,$this->height),rand(0,360),rand(0,360),$this->Bg());        }    }   // 9. 寫字  private function xiezi(){    for($i=0;$i<$this->num;$i++){      $x=ceil($this->width/$this->num)*$i;       $y=rand(1,$this->height-15);      imagechar($this->hb,5,$x+4,$y,$this->codestr[$i],$this->Font());    }    }   // 10. 輸出  private function OutImg(){    $shuchu="image".$this->imgType;     $header="Content-type:image/".$this->imgType;    if(function_exists($shuchu)){      header($header);      $shuchu($this->hb);     }else{      exit("GD庫(kù)沒(méi)有此類圖像");     }  }   // 11. 拼裝  private function zuhe(){    $this->Hb();    $this->BgColor();    $this->ganrao();    $this->huxian();    $this->xiezi();    $this->OutImg();   }     public function getCodeStr(){    return $this->codestr;      }}?>

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 沾化县| 台山市| 呈贡县| 常宁市| 阜新市| 三台县| 邵阳市| 宜昌市| 宣威市| 平利县| 上饶县| 应用必备| 江门市| 阿克| 诸城市| 平遥县| 类乌齐县| 五指山市| 拉孜县| 莱芜市| 旬阳县| 枣强县| 瓮安县| 延川县| 开原市| 廊坊市| 石楼县| 蒙自县| 隆子县| 墨竹工卡县| 卢氏县| 策勒县| 新河县| 济宁市| 新巴尔虎右旗| 晋城| 富阳市| 六安市| 大洼县| 咸丰县| 邵阳市|