中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

PHP驗(yàn)證碼類

class Captcha{
    //驗(yàn)證碼寬
    private $width;
    //驗(yàn)證碼高度
    private $height;
    //驗(yàn)證碼長(zhǎng)度
    private $len;
    //驗(yàn)證碼范圍
    private $str =  "abcdefghijkmnpqrstuvwxyz23456789ABCDEFGHJKLMNPQRSTUVWXYZ";
    //字體地址
    private $font_dir = 'F:\phpStudy\PHPTutorial\WWW\php\code\4.ttf';
    //驗(yàn)證碼資源
    private $img;
    //驗(yàn)證碼字符串
    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();

    }

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

    }

    //生成隨機(jī)字符串
    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();
    }

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

    //輸出驗(yàn)證碼到畫(huà)布
    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]);
        }
    }

    //畫(huà)干擾線
    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);
        }
    }

    //畫(huà)干擾點(diǎn)到畫(huà)布
    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);
    }
}

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

任城網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,任城網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為任城近1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的任城做網(wǎng)站的公司定做!

分享題目:PHP驗(yàn)證碼類
文章分享:http://www.rwnh.cn/article30/gdgcso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、域名注冊(cè)、網(wǎng)站制作響應(yīng)式網(wǎng)站、網(wǎng)站改版、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
册亨县| 崇信县| 连江县| 班戈县| 福建省| 安顺市| 衡水市| 行唐县| 萨迦县| 昌宁县| 扎鲁特旗| 台中市| 西丰县| 晋州市| 珠海市| 阿拉善右旗| 扎赉特旗| 德化县| 许昌县| 涟水县| 姚安县| 咸阳市| 新竹县| 涟水县| 武清区| 仪征市| 县级市| 柳林县| 上林县| 泰安市| 同德县| 云南省| 长沙县| 思南县| 合江县| 昌江| 永福县| 和田县| 文化| 丘北县| 大同市|