ホームページ  >  記事  >  バックエンド開発  >  非常に実践的な PHP 検証コード class_PHP チュートリアル

非常に実践的な PHP 検証コード class_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:10:17719ブラウズ

より実用的なPHPグラフィック検証コード生成クラス。呼び出し方法も非常に簡単で、困っている友人はそれを参照できます。

コードは次のとおりです コードをコピー

クラスイメージコード{
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);
}
}

?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/629693.html技術記事より実用的な PHP グラフィック検証コード生成クラス。呼び出し方法も非常に簡単なので、必要な友人が参照できます。 コードは次のとおりです コードをコピーします ?php classImageCode{ private $widt...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。