php实现的验证码文件类实例
本文实例讲述了php实现的验证码文件类。分享给大家供大家参考。具体如下:
<?php
/**
*@file
*@version1.0
*@author网海浪子
*@brief验证码文件类
*
*/
classCCheckCodeFile
{
//验证码位数
private$mCheckCodeNum=4;
//产生的验证码
private$mCheckCode='';
//验证码的图片
private$mCheckImage='';
//干扰像素
private$mDisturbColor='';
//验证码的图片宽度
private$mCheckImageWidth='80';
//验证码的图片宽度
private$mCheckImageHeight='20';
/**
*
*@brief输出头
*
*/
privatefunctionOutFileHeader()
{
header("Content-type:image/png");
}
/**
*
*@brief产生验证码
*
*/
privatefunctionCreateCheckCode()
{
$this->mCheckCode=strtoupper(substr(md5(rand()),0,$this->mCheckCodeNum));
return$this->mCheckCode;
}
/**
*
*@brief产生验证码图片
*
*/
privatefunctionCreateImage()
{
$this->mCheckImage=@imagecreate($this->mCheckImageWidth,$this->mCheckImageHeight);
imagecolorallocate($this->mCheckImage,200,200,200);
return$this->mCheckImage;
}
/**
*
*@brief设置图片的干扰像素
*
*/
privatefunctionSetDisturbColor()
{
for($i=0;$i<=128;$i++)
{
$this->mDisturbColor=imagecolorallocate($this->mCheckImage,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($this->mCheckImage,rand(2,128),rand(2,38),$this->mDisturbColor);
}
}
/**
*
*@brief设置验证码图片的大小
*
*@param$width宽
*
*@param$height高
*
*/
publicfunctionSetCheckImageWH($width,$height)
{
if($width==''||$height=='')returnfalse;
$this->mCheckImageWidth=$width;
$this->mCheckImageHeight=$height;
returntrue;
}
/**
*
*@brief在验证码图片上逐个画上验证码
*
*/
privatefunctionWriteCheckCodeToImage()
{
for($i=0;$i<=$this->mCheckCodeNum;$i++)
{
$bg_color=imagecolorallocate($this->mCheckImage,rand(0,255),rand(0,128),rand(0,255));
$x=floor($this->mCheckImageWidth/$this->mCheckCodeNum)*$i;
$y=rand(0,$this->mCheckImageHeight-15);
imagechar($this->mCheckImage,5,$x,$y,$this->mCheckCode[$i],$bg_color);
}
}
/**
*
*@brief输出验证码图片
*
*/
publicfunctionOutCheckImage()
{
$this->OutFileHeader();
$this->CreateCheckCode();
$this->CreateImage();
$this->SetDisturbColor();
$this->WriteCheckCodeToImage();
imagepng($this->mCheckImage);
imagedestroy($this->mCheckImage);
}
}
$c_check_code_image=newCCheckCodeFile();
//$c_check_code_image->SetCheckImageWH(100,50);
//设置显示验证码图片的尺寸
$c_check_code_image->OutCheckImage();
?>
希望本文所述对大家的php程序设计有所帮助。