91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP驗證碼類

發布時間:2020-07-11 11:16:18 來源:網絡 閱讀:427 作者:woaijorden 欄目:web開發
class Captcha{
    //驗證碼寬
    private $width;
    //驗證碼高度
    private $height;
    //驗證碼長度
    private $len;
    //驗證碼范圍
    private $str =  "abcdefghijkmnpqrstuvwxyz23456789ABCDEFGHJKLMNPQRSTUVWXYZ";
    //字體地址
    private $font_dir = 'F:\phpStudy\PHPTutorial\WWW\php\code\4.ttf';
    //驗證碼資源
    private $img;
    //驗證碼字符串
    private $code;

    public function __construct($config=['width'=>200,'height'=>50,'len'=>4]){
        $this->width=$config['width'];
        $this->height=$config['height'];
        $this->len=$config['len'];

    }

    public function entry(){
        $this->createBg();
        $this->getCode();
        $this->setCode();
        $this->setLine();
        $this->setDot();
        $this->setBg();

    }

    //生成畫布
    private function createBg(){
        $this->img = imagecreate($this->width,$this->height);
        //分配驗證碼的背景顏色
        imagecolorallocate($this->img,255,255,255);

    }

    //生成隨機字符串
    private function getCode(){
        for($i=0;$i<$this->len;$i++){
            $key = mt_rand(0,strlen($this->str)-1);
            $this->code .= $this->str[$key];
        }
        $this->setSession();
    }

    //把驗證碼存入session之后和用戶輸入的驗證碼做比較
    private function setSession(){
        session_start();
        $_SESSION['code']=strtolower($this->code);
    }

    //輸出驗證碼到畫布
    private function setCode(){
        for($i=0;$i<$this->len;$i++){
            $font_color = imagecolorallocate($this->img,mt_rand(0,100),mt_rand(0,100),mt_rand(0,100));
            $x = ($this->width/$this->len)*$i+5;
            $fontSize = mt_rand(18,28);
            $fontHeight=imagefontheight($fontSize);
            $y=  mt_rand($fontHeight+5,$this->height);
            imagettftext($this->img, $fontSize, mt_rand(-25,25), $x, $y, $font_color, $this->font_dir,$this->code[$i]);
        }
    }

    //畫干擾線
    private function setLine(){
        for ($i=0; $i <$this->len ; $i++) { 
            $line_color = imagecolorallocate($this->img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
            imageline($this->img, mt_rand(0,$this->width/$this->len), mt_rand(0,$this->height), mt_rand($this->width-$this->width/$this->len,$this->width),  mt_rand(0,$this->height), $line_color);
        }
    }

    //畫干擾點到畫布
    private function setDot(){
        for ($i=0; $i < $this->width ; $i++) { 
            $dot_color = imagecolorallocate($this->img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
            imagesetpixel($this->img, mt_rand(0,$this->width), mt_rand(0,$this->height), $dot_color);
        }
    }

    //輸出成圖像
    private function setBg(){
        ob_end_clean();
        header('content-type:image/jpeg');
        imagejpeg($this->img);
    }

    public function __destruct(){
        imagedestroy($this->img);
    }
}

//輸出驗證碼
$captcha = new Captcha();
$captcha->entry();

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

竹溪县| 兰考县| 华坪县| 随州市| 镇安县| 康保县| 上犹县| 襄樊市| 灌南县| 巴林左旗| 永康市| 桃园市| 河池市| 霍州市| 施甸县| 扎鲁特旗| 新田县| 耿马| 津市市| 乐都县| 新泰市| 台前县| 鹤山市| 长寿区| 喀什市| 竹北市| 密山市| 洪泽县| 繁峙县| 山东省| 安溪县| 兰溪市| 杭锦后旗| 武安市| 静宁县| 横山县| 济源市| 邵阳市| 图们市| 扎兰屯市| 广元市|