-
/**
- * ユニバーサル認証コードクラス img.php
- * バージョン: V0.1
- * bbs.it-home.org 2013/3/1
- */
- class ValidateCode {
- private $charset="abcdefghizklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; //ランダム係数
- private $code;
- コードレン = 4; //検証コードは複数の文字を表示します
- private $width=130; //検証コードの幅
- private $img; //検証コードのリソースハンドル
- private $font; font
- private $fontsize=20; //指定されたフォントサイズ
- private $fontcolor; //ランダムなフォントカラー
- //フォントを書き込むための構築クラス
- $this->font =ROOT_PATH.' /font/elephant.ttf';
- }
- //ランダムなコードを 4 つ作成します
- private function createCode(){
- $_leng=strlen($this->charset);
- for($i=1 ;$icodelen;$i++){
- $this->code.=$this->charset[mt_rand(0,$_leng)];
- }
- return $this->
- }
- ;
- //背景を作成します
- プライベート関数 createBg(){
- // リソース jubing のキャンバスを作成します
- $this->img=imagecreatetruecolor($this->width,$this->height) ;
- / /背景色
- $color=imagecolorallocate($this->img,mt_rand(157,255),mt_rand(157,255),mt_rand(157,255));
- //四角形を描画します
- imagefilledrectangle($this->gt; img,0, $this->height,$this->width,0,$color);
- }
-
- //フォントを作成
- プライベート関数 createFont(){
- $_x=($this->width / $this- >codelen); //フォントの長さ
- for ($i=0;$icodelen;$i++){
- //文字の色
- $color=imagecolorallocate($this-> ;img,mt_rand) (0,156),mt_rand(0,156),mt_rand(0,156));
- //リソースハンドル フォントサイズ 傾き フォント長 フォント高さ フォントの色 フォント固有のテキスト
- imagettftext($this->img,$this->fontsize,mt_rand (-30,30),$_x*$i+mt_rand(1,5),$this->高さ/1.4,$color,$this->font,$this->code [$i]) ;
- }
- }
- //ランダムな線
- private function createLine(){
- //ランダムな線
- for ($i=0;$i $color = imagecolorallocate( $this-> img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156));
- imageline($this->img,mt_rand(0,$this->幅),mt_rand(0,$this->高さ) ),mt_rand(0,$this->width),mt_rand(0,$this->height),$color);
- }
- //ランダムな雪の結晶
- for ($i=0; $i $color = imagecolorallocate($this->img,mt_rand(220,255),mt_rand(220,255),mt_rand(220,255));
- imagestring($this->img,mt_rand( 1,5), mt_rand(0,$this->width),mt_rand(0,$this->height),'*',$color);
- }
- }
- //背景を出力
- プライベート関数outPut (){
- / /ヘッダーを生成
- header('ContentType:img/png');
- //画像を出力
- imagepng($this->img);
- //結果セットを破棄
- imagedestroy($this-> ;img);
- }
- //外部出力
- public function doimg(){
- //背景をロード
- $this->createBg();
- //ファイルをロード
- $this->createCode();
- / /ラインをロード
- $ this->createLine();
- //フォントをロード
- $this->createFont();
- //背景をロード
- $this->outPut();
- }
-
- //検証コードを取得
- public function getCode(){
- return strto lower($this->code);
- }
-
- }
- ?>
-
-
- コードをコピー
-
呼び出し例:index.php
PHP 検証コードに関するいくつかの記事を皆さんにお勧めします。
phpランダム検証コードphpはランダム検証コード(画像とテキスト)を生成します
phpを使用してスノーフレークの背景を持つ検証コードを生成します
phpで書かれた確認コード
動的画像検証コードを生成するためのphpコード
|