ホームページ >バックエンド開発 >PHPチュートリアル >PHP 検証コード class_PHP チュートリアル
/**
* 認証コードのカテゴリ
*chaojie2008@126.com
* 2012-02-09
**/
クラスヴァイリム{
プライベート $width;
プライベート $height;
プライベート $codeNum;
プライベート $checkCode;
プライベート $image;
構築方法は、検証コードオブジェクトをインスタンス化し、いくつかのメンバー属性を初期化するために使用されます
/* パラメータ幅: 検証コード画像の幅を設定します。デフォルトの幅値は 60 ピクセルです */
/* パラメーターの高さ: 検証コード画像の高さを設定します。デフォルトの高さの値は 20 ピクセルです */
/* パラメータ codeNum: 確認コードの文字と数字の数を設定します。デフォルトの数は 4 です */
function __construct($width=60, $height=20, $codeNum=4) {
$this->checkCode=$this->createCheckCode() //メンバー属性 checkCode を初期化します
;
}
Function ShowImage () {// このメソッドにアクセスしてブラウザに画像を出力します
}
function getCheckCode(){ //このメソッドにアクセスして、ランダムに作成された検証コード文字列を取得します
return $ this-> checkcode;
}
画像リソースの作成に使用されるプライベート関数 getcreateImage() {// と裏面の裏面
$this->image=imageCreate($this->width,$this->height);
$back=imageColorAllocate($this->image, 255, 255, 255);
$border=imageColorAllocate($this->image, 0, 0, 0);
imageRectangle($this->image,0,0,$this->width-1,$this->height-1,$border);
}
private function createCheckCode(){ //ユーザーが指定した数の文字列をランダムに生成します
for($i=0;$icodeNum;$i++) {
$number=rand(0,2);
switch($number){
ケース 0: $rand_number=rand(48,57);break;
ケース 2: $rand_number=rand(97,122);break;
}
$ascii=sprintf("%c",$rand_number);
$ascii_number=$ascii_number.$ascii;
return $ascii_number;
private function setDisturbColor() { //干渉ピクセルを設定し、異なる色の 100 点を画像に出力します
for ($i=0;$i
$color = imagecolorallocate($this->image, rand(0,255), rand(0,255), rand(0,255));
imagesetpixel($this->image,rand(1,$this->width-2),rand(1,$this->height-2),$color);
}
}
プライベート関数outputText() { // ランダムな色、ランダムな配置、ランダムな文字列を画像に出力します
for ($i=0;$icodeNum;$i++) {
$bg_color = imagecolorallocate($this->image, rand(0,255), rand(0,128), rand(0,255));
$x = フロア($this->width/$this->codeNum)*$i+3;
$y = rand(0,$this->height-15);
Imagechar($this->image, 5, $x, $y, $this->checkCode[$i], $bg_color);
}
}
プライベート関数 OutputImage () {// GD がサポートする画像タイプを自動的に検出し、画像を出力します
If(imagetypes() & IMG_GIF){ //GIF形式の画像を生成する関数が存在するかどうかを判定します
header("Content-type: image/gif"); //ヘッダー情報を送信し、MIME タイプを image/gif に設定します
Imagegif ($ this- & gt; Image) // 画像を gif 形式でブラウザ
に出力します。
} Elseif (ImageTypes () & IMG_JPG) {// jpg 形式の画像を生成する関数が存在するかどうかを判断します
header("Content-type: image/jpeg"); //ヘッダー情報を送信し、MIME タイプを image/jpeg に設定します
Imagejpeg($this->image, "", 0.5); //画像をJPEN形式でブラウザに出力します
} Elseif (ImageTypes () & IMG_PNG) {// PNG 形式の画像を生成する関数が存在するかどうかを判断します
header("Content-type: image/png"); //ヘッダー情報を送信し、MIME タイプを image/png に設定します
ImagePng ($ this-> Image) // 画像を PNG 形式でブラウザーに出力します
} Elseif (ImageTypes () & IMG_WBMP) {// WBMP 形式の画像を生成する関数が存在するかどうかを判断します
header("Content-type: image/vnd.wap.wbmp"); //送信ヘッダーはimage/wbmp
wbmp形式のブラウザに画像を出します
DIE ("PHP はイメージの作成をサポートしていません!"); // 画像を出力せず、エラーメッセージを出力してプログラムを終了します
}
Function __Destruct () {// オブジェクトが終了する前にオブジェクトが破棄されると、画像リソースはメモリを解放します
GDライブラリでメソッドを使用して画像リソースを破壊する
}
}
?>
chaojie2009 さんのコラムより抜粋