PHP碎码——自己写的验证码-创新互联

其实里面没必要封装函数,只是当时觉得视觉上好看而已,结构清晰点

创新互联公司是一家专业的成都网站建设公司,我们专注成都网站设计、网站建设、网络营销、企业网站建设,卖友情链接广告投放为企业客户提供一站式建站解决方案,能带给客户新的互联网理念。从网站结构的规划UI设计到用户体验提高,创新互联力求做到尽善尽美。font_size = ($this->img_height*2/5 > $this->img_height*4/5 ? $this->img_height*4/5 : $this->img_height*2/5);     }          public function run(){         //创建图片资源         $this->createImage();         //往图片中添加雪花         $this->addaSterisk();         //往图片中添加字符         $this->addfont();         //往图片中添加线条         $this->addLine();         //将图片输出至浏览器         $this->outputImg();     }     //返回验证码字符串     public function getCode(){         return $this->codes;     }          //创建图片资源     private function createImage(){         //创建图片资源         $this->img = p_w_picpathcreatetruecolor($this->img_length,$this->img_height);           //创建颜色         $color_bg = p_w_picpathcolorallocate($this->img, mt_rand(210, 255), mt_rand(210, 255), mt_rand(210, 255));         //设置图片背景色         p_w_picpathfill($this->img, 0, 0, $color_bg);     }          //往图片中添加线条     private function addLine(){         //添加指定数量的线条         for ($i = 0; $i < $this->line_num; $i++) {             //创建随机颜色--参数(图片资源,R,B,G)             $color_line = p_w_picpathcolorallocate($this->img, mt_rand(50, 200), mt_rand(50, 200), mt_rand(50, 200));                          //添加线条,位置随机--参数(图片资源,起点-x,起点-y,终点-x,终点-y,颜色)             //不可调整             //p_w_picpathline($this->img, mt_rand(0, $this->img_length), mt_rand(0, $this->img_height), mt_rand(0, $this->img_length), mt_rand(0, $this->img_height), $color_line);             //可以调整线条的粗细             $src_x = mt_rand(0, $this->img_length);             $src_y = mt_rand(0, $this->img_height);             $dest_x = mt_rand(0, $this->img_length);             $dest_y = mt_rand(0, $this->img_height);             for ($j = 0; $j < 1; $j++) {                 p_w_picpathline($this->img, $src_x+$j, $src_y+$j, $dest_x+$j,$dest_y+$j, $color_line);             }         }     }     //往图片中添加雪花     private function addaSterisk(){         //添加指定数量的雪花         for ($i = 0; $i < $this->sterisk_num; $i++) {             //创建随机颜色--参数(图片资源,R,B,G)             $color_Ster = p_w_picpathcolorallocate($this->img, mt_rand(220, 255), mt_rand(220, 255), mt_rand(220, 255));             //添加雪花,位置随机--参数(图片资源,倾斜角度,左下角-x,左下角-y,颜色,字符串)             p_w_picpathstring($this->img,mt_rand(0,360),mt_rand(0,$this->img_length),mt_rand(0,$this->img_height),'*',$color_Ster);         }     }          private function addfont(){         for ($i = 0; $i < $this->code_num; $i++) {             //随机从字符列表中取一个字符             $code = substr(str_shuffle($this->charlist),-1);             //记录到验证码字符串中             $this->codes .= $code;             //创建随机颜色--参数(图片资源,R,B,G)             $color_font = p_w_picpathcolorallocate($this->img, mt_rand(10, 180), mt_rand(10, 180), mt_rand(10, 180));             //添加雪花,位置随机--参数(图片资源,字体大小,倾斜角度,左下角-x,左下角-y,字体颜色,字体,字符串)             // 左下角-y,字体的基准高度是估计的,由于字体大小使用磅,不同字符的长宽像素相差甚大             p_w_picpathttftext($this->img, $this->font_size, mt_rand(-30, 30), ($this->img_length/$this->code_num)*$i+mt_rand(1,$this->font_size*0.2), $this->img_height*0.7+mt_rand(-$this->img_height*0.2, $this->img_height*0.2), $color_font, $this->ttf, $code);         }     }          //输出图片至浏览器     private function  outputImg(){         //通知浏览器是png格式         header('Content-type:p_w_picpath/png');         //以png格式输出         p_w_picpathpng($this->img);         //销毁内存中的图片资源         p_w_picpathdestroy($this->img);     }          public function __set($key,$value){              }          public function __get($value){              }           }

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


标题名称:PHP碎码——自己写的验证码-创新互联
标题链接:http://azwzsj.com/article/djopep.html