php 验证类
验证类 PHP验证类**[PHP]代码**[代码片段(105行)]**[PHP]代码**[代码片段(105行)]
PHP验证类
[PHP]代码
<?php
class checkcode
{
//图像句柄
private $img;
//画布宽
public $width=85;
//画布搞
public $height=25;
//背景颜色
public $bg_color = "#DCDCDC";
//验证码
public $code;
//验证码库
public $code_str = "sadhadh1ui2y9822ur2r9283r9rqdadqe12423reffqadfja09sdf0rpafashdfqwer98fqortFP89EDFIOQHFWEFTrgwfOGUsgdfKHAEFUHuqGR";
//验证码长度
public $code_len = 4;
//验证码字体
public $font;
//字体大小
public $font_size = 16;
//字体颜色
public $font_color = "#ffffff";
/*
* 构造函数
*/
public function __construct()
{
$this->font = "font".DIRECTORY_SEPARATOR."arial.ttf";
}
/*
*验证码生成函数
*/
private function create_code()
{
$code=" ";
for($i=0;$i<$this->code_len;$i++)
{
$code.=$this->code_str[mt_rand(0,strlen($this->code_str)-1)];
}
$this->code = $code;
}
/*
*得到验证码
*/
public function getcode()
{
return strtoupper($this->code);
}
/*
* 创建图画句柄
*/
public function getimg()
{
$w = $this->width;
$h = $this->height;
$img = imagecreatetruecolor($w,$h);
$bg_color = imagecolorallocate($img,hexdec(substr($bg_color,1,2)),hexdec(substr($img,3,2)),hexdec(substr($img,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++){
imagettftext($this->img, $this->font_size, mt_rand(-30, 30), $x*$i+mt_rand(3,6), mt_rand($this->height/1.2,$this->height-5), $font_color, $this->font, $this->code[$i]);
}
$this->font_color = $font_color;
}
/*
*写人干扰
*/
private 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<2;$j++)
{
imagesetthickness($this->img,mt_rand(2,4));
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);
}
}
/*
*显示代码
*/
private function show_code(){
header("Content-type:image/png");
imagepng($this->img);
imagedestroy($this->img);
}
}
?>
[PHP]代码
<?php
class checkcode
{
//图像句柄
private $img;
//画布宽
public $width=85;
//画布搞
public $height=25;
//背景颜色
public $bg_color = "#DCDCDC";
//验证码
public $code;
//验证码库
public $code_str = "sadhadh1ui2y9822ur2r9283r9rqdadqe12423reffqadfja09sdf0rpafashdfqwer98fqortFP89EDFIOQHFWEFTrgwfOGUsgdfKHAEFUHuqGR";
//验证码长度
public $code_len = 4;
//验证码字体
public $font;
//字体大小
public $font_size = 16;
//字体颜色
public $font_color = "#ffffff";
/*
* 构造函数
*/
public function __construct()
{
$this->font = "font".DIRECTORY_SEPARATOR."arial.ttf";
}
/*
*验证码生成函数
*/
private function create_code()
{
$code=" ";
for($i=0;$i<$this->code_len;$i++)
{
$code.=$this->code_str[mt_rand(0,strlen($this->code_str)-1)];
}
$this->code = $code;
}
/*
*得到验证码
*/
public function getcode()
{
return strtoupper($this->code);
}
/*
* 创建图画句柄
*/
public function getimg()
{
$w = $this->width;
$h = $this->height;
$img = imagecreatetruecolor($w,$h);
$bg_color = imagecolorallocate($img,hexdec(substr($bg_color,1,2)),hexdec(substr($img,3,2)),hexdec(substr($img,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++){
imagettftext($this->img, $this->font_size, mt_rand(-30, 30), $x*$i+mt_rand(3,6), mt_rand($this->height/1.2,$this->height-5), $font_color, $this->font, $this->code[$i]);
}
$this->font_color = $font_color;
}
/*
*写人干扰
*/
private 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<2;$j++)
{
imagesetthickness($this->img,mt_rand(2,4));
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);
}
}
/*
*显示代码
*/
private function show_code(){
header("Content-type:image/png");
imagepng($this->img);
imagedestroy($this->img);
}
}
?>
- 上一篇:php 智能人性化提交表单JS特效代码
- 下一篇:php echo `dir`
精彩图集
精彩文章






