本文实例为大家分享了PHP验证码类,利用对象来实现的验证码类,供大家参考,具体内容如下
代码
- <?php
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- Class Image{
- private $img;
- public $width = 85;
- public $height = 25;
- public $code;
- public $code_len = 4;
- public $code_str = "329832983DSDSKDSLKQWEWQ2lkfDSFSDjfdsfdsjwlkfj93290KFDSKJFDSOIDSLK";
- public $bg_color = '#DCDCDC';
- public $font_size = 16;
- public $font = 'font.ttf';
- public $font_color = '#000000';
- //创建验证码饿字符创
- public function create_code(){
- $code = '';
- for( $i=0;$i<$this->code_len;$i++ ){
- $code .= $this->code_str[mt_rand(0, strlen($this->code_str)-1)];
- }
- return $this->code = $code;
- }
- //输出图像
- public function getImage(){
- $w = $this->width;
- $h = $this->height;
- $bg_color = $this->bg_color;
- $img = imagecreatetruecolor($w, $h);
- $bg_color = imagecolorallocate($img,
- hexdec(substr($bg_color, 1,2)), hexdec(substr($bg_color, 3,2)), hexdec(substr($bg_color, 5,2)));
- imagefill($img, 0, 0, $bg_color);
- $this->img = $img;
- $this->create_font();
- $this->create_pix();
- $this->show_code();
- }
- //写入验证码
- public function create_font(){
- $this->create_code();
- $color = $this->font_color;
- $font_color = imagecolorallocate($this->img, hexdec(substr($color,1,2)), hexdec(substr($color, 3,2)), hexdec(substr($color,5,2)));
- $x = $this->width/$this->code_len;
- for( $i=0;$i<$this->code_len;$i++ ){
- $txt_color = imagecolorallocate($this->img, mt_rand(0,100), mt_rand(0, 150), mt_rand(0, 200));
- imagettftext($this->img, $this->font_size, mt_rand(-30, 30), $x*$i+mt_rand(3, 6), mt_rand($this->height/1.2, $this->height), $txt_color, $this->font , $this->code[$i]);
- //imagestring($this->img, $this->font_size, $x*$i+mt_rand(3, 6),mt_rand(0, $this->height/4) , $this->code[$i], $font_color);
- }
- $this->font_color = $font_color;
- }
- //画干扰线
- public function create_pix(){
- $pix_color= $this->font_color;
- for($i=0;$i<100;$i++){
- imagesetpixel($this->img, mt_rand(0, $this->width),mt_rand(0, $this->height), $pix_color);
- }
- for($j=0;$j<4;$j++){
- imagesetthickness($this->img, mt_rand(1, 2));
- imageline($this->img, mt_rand(0, $this->width), mt_rand(0, $this->height), mt_rand(0, $this->width), mt_rand(0, $this->height), $pix_color);
- }
- }
- //得到验证码
- public function getCode(){
- return strtoupper($this->code);
- }
- //输出验证码
- private function show_code(){
- header("Content-type:image/png");
- imagepng($this->img);
- imagedestroy($this->img);
- }
- }
效果图:
精彩专题分享:ASP.NET验证码大全 PHP验证码大全 java验证码大全
以上就是使用对象编写的验证码类的全部内容,希望对大家学习PHP程序设计有所帮助。