クラスイメージコード{
private $width;//認証コード画像の幅
private $height;//認証コード画像の高さ
private $codeNum;//確認コードの文字数
private $checkCode;//検証コード文字
private $image;//認証コードキャンバス
関数 __construct($width=60,$height=20,$codeNum=4){
$this->width=$width;
$this->height=$height;
$this->codeNum=$codeNum;
$this->checkCode=$this->createCheckCode();
}
関数 getcreateImage(){
$this->getcreateImage();
$this->outputText();
$this->setDisturbColor();
$this->outputImage();
}
関数 getCheckCode(){
$this->checkCode; を返します
}
プライベート関数 getCreateImage(){
$this->image=imagecreatetruecolor($this->幅,$this->高さ);
$black=imagecolorallocate($this->image,255,255,255,0);
$border=imagecolorallocate($this->image,255,255,255,255);
imagefilledrectangle($this->image,0,0,$this->width-1,$this->height-1,$border);
}
プライベート関数createCheckCode(){
for($i=0;$icodeNum;$i){
$number=rand(0,2);
スイッチ($number){
ケース0:
$rand_number=rand(48,57);//数値
休憩
ケース 1:
$rand_number=rand(65,90);//大文字
休憩
ケース 2:
$rand_number=rand(97,122);
休憩
}
$asc=sprintf("%c",$rand_number);
$asc_number=$asc_number.$asc;
}
$asc_number を返します;
}
プライベート関数setDisturbColor(){
for($i=0;$i
$color=imagecolorallocate($this->image,255,255,255);
imagesetpixel($this->image,rand(1,$this->width-2),rand(1,$this->height-2),$color);
}
}
プライベート関数outputImage(){
if(imagetypes()&IMG_GIF){
header("Content_type:image/gif");
Imagegif($this->image);
}elseif(imagetypes()&IMG_JGP){
header("Content_type:image/jpeg");
Imagejpeg($this->image,"",0.5);
}その他{
Die("PHP はイメージの作成をサポートしていません");
}
}
関数__destruct(){
imagedestroy($this->image);
}
}
?>
|