首页 > 作文

PHP学习之验证码类

更新时间:2023-04-06 16:05:19 阅读: 评论:0

<?php$code = new code();$code->o森林防火的内容utimage();class code{    //验证码个数    protected $number;    //验证码类型    protected $codetype;    //图像宽度    protected $width;    //图像高度    protected $height;    //图像资源    protected $image;    //验证码字符串    protected $code;    /**     * undocumented function     *     * @param integer $number     * @param integer $codetype     * @param integer $width     * @param integer $height     */    public function __construct($number = 4, $codetype = 2, $width = 100, $height = 50)    {        //初始化自己的成员属性     唯美名字   $this->number = $number;        $this->codetype = $codetype;        $this->width = $width;        $this->height = $height;        //生成验证码函数        $this->code = $this->createcode();    }    /**     * 析构函数     * 释放图像资源     */    public function __destruct()    {        //释放图像资源 宜昌江山多娇       imagedestroy($this->image);    }        /**     * //魔术方法   通过对象获取保护的code     * $code = new code();     * echo $code->code;     *     * @param [type] $name     * @return void     */    public function __get($name)    {        if ($name == 'code') {            return $this->code;        }        return fal;    }    /**     * 获取验证码     *     * @return void     */    protected function createcode()    {        //通过你的验证码类型给你生成不同的验证码        switch ($this->codetype) {            ca 0:  //纯数字                $code = $this->getnumbercode();                break;            ca 1:  //纯字母                $code = $this->getcharcode();                break;            ca 2:  //字母和数字混合                $code = $this->getnumcharcode();                break;            default:                die('不支持这种验证码类型');        }        return $code;    }    /**     * 生成纯数字验证码     *     * @return void     */    protected function getnumbercode()    {        // $startnum = pow(10, $this->number - 1);        // $endnum = pow(10, $this->number) - 1;        // $str = rand($startnum, $endnum);        // return $str;        $str = join('', range(0, 9));        return substr(str_shuffle($str), 0, $this->number);    }    /**     * 生成纯字母验证码     *     * @return void     */    protected function getcharcode()    {        $str = join('', range('a', 'z'));        $str = $str . strtoupper($str);        return substr(str_shuffle($str), 0, $this->number);    }    /**     * 生成字母和数字验证码     *     * @return void     */    protected function getnumcharcode()    {        $numstr = join('', range(0, 9));        $str = join('', range('a', 'z'));        $str = $numstr . $str . strtoupper($str);        return substr(str_shuffle($str), 0, $this->number);    }    /**     * 创建画布     *     * @return void     */    protected function createimage()    {        $this->image = imagecreatetruecolor($this->width, $this->h暴雨预警颜色等级eight);    }    /**     * 填充背景颜色     *     * @return void     */    protected function fillback()    {        imagefill($this->image, 0, 0, $this->lightcolor());    }    /**     * 随机生成浅颜色     *     * @return void     */    protected function lightcolor()    {        return imagecolorallocate($this->image, mt_rand(130, 255), mt_rand(130, 255), mt_rand(130, 255));    }    /**     * 随机生成深颜色     *     * @return void     */    protected function darkcolor()    {        return imagecolorallocate($this->image, mt_rand(0, 120), mt_rand(0, 120), mt_rand(0, 120));    }    /**     * 将验证码字符串画到画布中 好结尾摘抄大全    *     * @return void     */    protected function drawchar()    {        $width = ceil($this->width / $this->number);        for ($i = 0; $i < $this->number; $i++) {            $x = mt_rand($i * $width+5, ($i + 1) * $width - 10);            $y = mt_rand(0, $this->height - 15);            imagechar($this->image, 5, $x, $y, $this->code[$i], $this->darkcolor());        }    }    /**     * 添加干扰项     *     * @return void     */    protected function drawdisturb()    {        for ($i = 0; $i < 150; $i++) {            $x = mt_rand(0, $this->width);            $y = mt_rand(0, $this->height);            imagetpixel($this->image, $x, $y, $this->lightcolor());        }    }    /**     * 输出并且显示     *     * @return void     */    protected function show()    {        header('content-type:image/png');        imagepng($this->image);    }    public function outimage()    {        //创建画布         $this->createimage();        //填充背景色        $this->fillback();        //将验证码字符串画到画布中        $this->drawchar();        //添加干扰项        $this->drawdisturb();        //输出并且显示        $this->show();    }}

运行效果:

本文发布于:2023-04-06 16:05:17,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/a3bb55de415ef711fc3466dd6faed718.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:PHP学习之验证码类.doc

本文 PDF 下载地址:PHP学习之验证码类.pdf

下一篇:返回列表
标签:验证码   画布   图像   字母
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图