ホームページ > php教程 > php手册 > PHP イメージ検証コードの作成と共有 (フル)

PHP イメージ検証コードの作成と共有 (フル)

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 12:00:17
オリジナル
816 人が閲覧しました

今日ランダム関数 rand() に遭遇したときと同じように、これをどうするかを考えて、最終的に確認コード、数字の確認コード、文字の確認コード、中国語の確認コードを思い出しましたが、方法がわかりません。どうすればいいでしょうか? インターネットで検索したり、他の人のコードを見て、分からなかったらビデオを見たり、先生の講義を聞いたり、見つけた機能や注目すべき点をメモしたりするのが一般的です。 、一般的な Web ページでは、特定の番号に基づいたランダムな確認コードがボックスで囲まれており、背景として画像が表示されているようです。自分で見て入力してみると、分からない問題もたくさんありましたが、地に足をつけていれば必ず身につくと信じています。非常に乱雑な文章かもしれませんが、いつか実現すると信じています。 1.乱数を生成する - 「画像を作成する -」画像に乱数を書き込む - 「画像に干渉値(点、線)を追加する -」「セッションに保持する -」フォームで参照する;ランダム関数: rand (int min, int max); 起源がなければ変化することはありません。数字や文字を含む乱数、中国語の乱数 (配列) など、乱数を生成するためのコードがたくさんあります。コードは次のとおりです (オンラインでコピーする人もいます。個人的に受け取らないでください。最初のコード:

コードをコピーします) 🎜> コードは次のとおりです:

$authnum=''
$ychar="0,1,2,3,4,5,6,7,8 、9、A、B、C、D、E、F、G、H、I、J、K、L、M、N、O、P、Q、R、S、T、U、V、W、X ,Y,Z";
$list=explode(",", $ychar);//分割関数
for($i=0;$i$randnum =rand(0,35);
$authnum.=$list[ $randnum];// 配列形式で出力

2 番目のタイプ:

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

プライベート関数 createCheckCode()
{
for(i=0;i{
number = rand(0,2);
switch(number)
{
case 0: rand_number = rand(48,57);/ /Number
case 1: rand_number = rand(65,90);break;// 大文字
case 2: rand_number = rand(97,122);break;// 小文字
}
$ asc = sprintf("%c",rand_number);
$asc_number = asc_number.asc ;
return
}


3 番目のタイプ:



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

srand(microtime()*100000);//タイマーと同等

$string="abcdefghigklmnopqrstuvwxyz123456789";
for($i=0;$i{
$new_number.=$string[rand(0,strlen($string)-1 )];//突然配列を生成する
}


4 番目の方法:



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

for($i=0;$i{
$rand.=dechex(rand(1,15));//10 進数を変換16 進数へ
}


GD ライブラリ: (画像処理画像を生成するための画像処理関数用の一連の IPI を提供します) php で GD ライブラリを有効にします: php.ini 設定内ファイルの「;extension=php_gd2.dll」の「;」を削除します。
GD ライブラリ関数の紹介の一部: 1.imagecreatetruecolor(int x_size,int Y_size) 新しい True Color イメージを作成します
2. imagecolorallocate(resource image,int red,int green,int blue) 画像に色を割り当てる、三原色
3 .imagestring (resource, font, int x, int y, content, color) 描画関数 4. header ("Content-type: image/jpeg") 出力関数phpのヘッダーは、php5がサポートするヘッダーの種類: 1、Content-type: xxxx/yyyy 2、Location: xxxx:yyyy/zzzz 3の3種類です。 、ステータス: nnn xxxxxx xxxx/yyyy は、次のようなコンテンツ ファイルの種類を示します: image/gif image/jpeg image/png imagejpeg(), imagegif( ),imagepang() 5.iamgeline(resource image,int x1,int y1, int x2,int y2,int color); 線描画関数、(int x,int y) 開始座標 6.imagesetpixel(resource image,int x,int y,int color) 描画点関数 7.imagettftext(resource image,float) size,float angle,int x,int y,int color,string fontfile,string text) フォント 8.iconv("gb2312 ","utf-8","string") で関数を作成 //まずテキストを変換します。 utf-8 形式に変換し、php 検証コードを中国語で挿入します。

コードの数字と文字をランダムに生成します:



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

< ;?php

//che.php
session_start();
for($i=0;$i<4;$i )
{
$rand.= dechex(rand (1,15));
$_SESSION['check_num']=$rand;
$image=imagecreatetruecolor(50,30); im,0 ,0,0);//初めてパレットを使用するとき、背景色は
$te=imagecolorallocate($im,255,255,255);
imagestring($image,6,rand(0); ,20) ,rand(0,2),$rand,$te);
ob_clean();//必要なため、画像「http://localhost/**.php」が PHP Web ページに表示されます。独自のエラーのため検証コードを生成するには
header("Content-type:image/jpeg")

;
画像の干渉線を描画するコード:

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


($i=0; $i{
$cg=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255)); //ランダムなカラーを生成します
imageline($im,rand(10,40),0,rand(10,40),20,$cg)
}


干渉を描画します画像へ ポイントコード:

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


for($i=0;$i< ;80;$i )//複数の点を描画します
{
imagesetpixel($im,rand(0,40),rand(0,20),$cg); >
画像コードにテキストを書き込みます:



コードをコピー

コードは次のとおりです: $str=array ('I',' I',' dear',' dear');//表示されている漢字を保存します

for($i=0;$i{
$sss.=$str[ rand(0,3)];//漢字をランダムに表示
}

//$str=iconv("gb2312","utf-8",$str) ); //中国語の文字エンコード変換は必要ないようです
imagettftext($im,10,0,rand(5,60),rand(5,60),$te,"simhei.ttf ",$sss);//


0: フォントの傾き、"simhei.ttf": フォント スタイル、通常はルート ディレクトリに配置されます。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート