• 南通海门开展10个方面19项安全生产专项整治 2019-08-18
  • 晋中交警严查“四类车辆”违法行为 2019-08-18
  • 中国端午,世界节日!看“世界朋友圈”如何过端午 2019-08-17
  • 回复@缘起的心星:你肯定是五级! 2019-08-03
  • 世界社会主义运动的重要篇章 2019-07-04
  • “价值由劳动创造≠劳动必然创造价值”错;“价值由劳动创造=劳动必然创造价值”对。 2019-07-02
  • “超级海绵”从沙漠空气中“吸出”水--旅游频道 2019-06-20
  • 中国经济充当了世界经济发展的火车头。但是,作为世界经济火车头的中国,在世界主要经济体股市都走牛的情况下,为何熊途漫漫?这种不正常的现象,背后是我们资本市场的投融 2019-06-20
  • 中央军委印发《传承红色基因实施纲要》 2019-06-05
  • 粤港澳大湾区未来有望成为世界第五大经济体 2019-05-22
  • 伊朗真的不使用美元了 特朗普急的直跳脚! 2019-05-14
  • 鹏城展翅再高飞(壮阔东方潮 奋进新时代——庆祝改革开放40年) 2019-05-05
  • “十八兄弟会”,横行乡里十几年……—qhchang的博客—强国博客—人民网 2019-05-05
  • 三个版本的小米8发布,都有哪些区别? 2019-05-02
  • 华北难停"烤箱"模式局地气温冲40℃ 华南雨水频繁 2019-04-30
  • php常用类分享之验证码图片类

    浙江11选5前二直选走势图编程小贴士> 查看全部 >03-14

    验证码生成类:

    功能:生成验证码。

    本文实例讲述了PHP实现的简单验证码类及其详细的使用方法。分享给大家供大家参考,具体如下

    <?php

    /**
     * 验证码图片类
    */

    class verify{

        //声明成员属性          
        private $width; //宽
        private $height; //高
        private $imagetype; //图片类型
        private $num; //显示字符的个数
        private $checkcode; //返回给session 的字符串
        private $img; //定义一个图片资源
        private $type; //验证码的类型 ,1 数字 2 字母 3 组合型
        
        //初始化 默认的参数
        public function __construct($width='100',$height='30',$num='4',$type='3',$imagetype='jpeg'){
            $this->width=$width;
            $this->height=$height;
            $this->num=$num;
            $this->type=$type;
            $this->imagetype=$imagetype;
            $this->checkcode=$this->getcheckcode();
        }
        
        private function getcheckcode(){ //产生字符串的方法
            switch($this->type){
                case 1://数字类型的
                    $string=join('',array_rand(range(0,9),$this->num));
                break;
                case 2://字母类型的
                    $string=implode('',array_rand(array_flip(range('a','z')),$this->num));
                break;
                case 3://字母与数字混合性
                    $str='23456789abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ';
                    $s=str_shuffle($str);
                    $string=substr($s,0,$this->num);
                break;
            }
            return $string;
        }

        //定义产生画布的方法
        private function createimage(){
            $this->img=imagecreatetruecolor($this->width,$this->height);
        }
        
        //产生背景颜色,颜色要比字体的颜色浅
        private function bgcolorrand(){
            return imagecolorallocate($this->img,mt_rand(230,255),mt_rand(230,255),mt_rand(230,255));
        }
        
        //产生字体的颜色,颜色要比背景颜色深
        private function textcolorrand(){
            return imagecolorallocate($this->img,mt_rand(0,125),mt_rand(0,125),mt_rand(0,125));
        }
        
        //填充背景的颜色
        private function filledbg(){
            imagefilledrectangle($this->img,0,0,$this->width,$this->height,$this->bgcolorrand());
        }
        
        //添加干扰点
        private function filledpix(){
            for($i;$i<70;$i++){
                $x=mt_rand(2,$this->width-5);
                $y=mt_rand(2,$this->height-5);
                imagesetpixel($this->img,$x,$y,$this->textcolorrand());
            }
        }
        
        //循环写上字符
        private function writetext(){
            for($i=0;$i<$this->num;$i++){
                $x=ceil($this->width/$this->num)*$i+5;
                $y=mt_rand(5,$this->height-20);
                imagechar($this->img,5,$x,$y,$this->checkcode[$i],$this->textcolorrand());
            }
        }
        
        //输出图片
        private function output(){
            $func='image'.$this->imagetype;
            $header='content-type:image/'.$this->imagetype;
            /*----判断我们链接的这个字符串的名字是不是函数----*/
            if(function_exists($func)){
                header($header);
                $func($this->img);
            }else{
                echo '当前系统不支持这种图片的格式';
                return false;
            }
        }
        
        //获得图片的方法
        public function getimg(){
            $this->createimage();//创建画布方法
            $this->filledbg();//填充背景方法
            $this->filledpix();//填充干扰点方法
            $this->writetext();//写上随机字符方法
            $this->output();//输出图片方法
        }

        function __get($proname){
            if($proname=='checkcode'){
                return $this->$proname;
            }else{
                return false;
            }
        }

        //销毁图片资源,自动执行
        public function __destruct(){
            imagedestroy($this->img);
        }
    }

    $verify=new verify();
    $verify->getimg();
    ?>


    然成科技是一家本土的云南软件开发公司,2017年获得云南省科技厅、省财政厅、省税务局等机构认定的高新技术企业。定位于高端网站设计、系统开发、APP开发、微信公众号、浙江11选5前二直选走势图。拥有多个软著权,公司先后为多家事业单位提供服务,比如会泽文化馆、宣威文化馆、中科院昆明植物研究所等。其中中国科学院昆明植物研究所已经进行了长达4年的合作,并且还持续合作中!

    浙江体彩11选五走势:中国 · 云南 · 昆明

    然成科技微信二维码
    扫一扫关注然成微信

    浙江11选5前二直选走势图 www.whjl8.com 办公室:云南省昆明市盘龙区白云路北京路花苑3幢403(地铁2号线白云路站)

  • 南通海门开展10个方面19项安全生产专项整治 2019-08-18
  • 晋中交警严查“四类车辆”违法行为 2019-08-18
  • 中国端午,世界节日!看“世界朋友圈”如何过端午 2019-08-17
  • 回复@缘起的心星:你肯定是五级! 2019-08-03
  • 世界社会主义运动的重要篇章 2019-07-04
  • “价值由劳动创造≠劳动必然创造价值”错;“价值由劳动创造=劳动必然创造价值”对。 2019-07-02
  • “超级海绵”从沙漠空气中“吸出”水--旅游频道 2019-06-20
  • 中国经济充当了世界经济发展的火车头。但是,作为世界经济火车头的中国,在世界主要经济体股市都走牛的情况下,为何熊途漫漫?这种不正常的现象,背后是我们资本市场的投融 2019-06-20
  • 中央军委印发《传承红色基因实施纲要》 2019-06-05
  • 粤港澳大湾区未来有望成为世界第五大经济体 2019-05-22
  • 伊朗真的不使用美元了 特朗普急的直跳脚! 2019-05-14
  • 鹏城展翅再高飞(壮阔东方潮 奋进新时代——庆祝改革开放40年) 2019-05-05
  • “十八兄弟会”,横行乡里十几年……—qhchang的博客—强国博客—人民网 2019-05-05
  • 三个版本的小米8发布,都有哪些区别? 2019-05-02
  • 华北难停"烤箱"模式局地气温冲40℃ 华南雨水频繁 2019-04-30
  • 派彩电子走势图手机版 天津时时彩个位走势图 贵州快三开奖查询 足球比分直播手机网 单机百家乐破解方法 陕西11选5开奖结果遗漏 湖北快3未出号码查询 福彩3d今日试机号 北京快三跨度表 新疆25选7图表 平特三连肖稳赚网站 宁夏11选5开奖查询 羽毛球步伐教学视频 排列3走势图 75秒极速时时彩有假吗