PHP5のGDライブラリがグラフィック検証コード(漢字含む)を生成_PHPチュートリアル
PHP5 の GD ライブラリを使用してグラフィカルな検証コードを生成します
以下と同様です
1. GD ライブラリ関数を使用して画像を生成し、画像上に指定された文字を書き込みます
imagecreatetruecolor 新しいトゥルーカラー画像を作成します
imagecolorallocate 画像に色を割り当てます (パレット)
imagestring が文字を描画します
imageline がピクセルを描画します
2. 画像を出力します
imagejpeg($img); コード内のコメントは詳細です。ここではあまり説明しません
verify.php
// Web サイトでは、通常、GD ライブラリはサムネイルの生成や画像への透かしの追加、または Web サイト データに関するレポートの生成に使用されます。
session_start();
// GBK エンコードされた文字列を UTF-8 文字列に変換します。ホストに保存されているこの PHP ファイルのエンコードは GBK エンコードであるため、最初のパラメータは GBK と書かれます。
// UTF-8 エンコードは通常ブラウザでサポートされており、汎用性が高いです。 ここでは UTF-8 に変換します
$str = iconv("GBK", "utf-8", "すべての生き物は緑であり、緑の水、緑の山、景勝地や史跡です。心を開くと、幸せがいつもあなたとともにあります。 )
{
exit("文字列ではないか、utf-8 ではありません");
}
$ zhongwenku_size
// UTF-8 エンコーディングに従って文字列の長さを取得します
$zhongwenku_size = mb_strlen($str, "UTF -8");
// 上記の文字を配列にインポートします
$zhongwenku = array();
for( $i=0; $i<$zhongwenku_size; $i++)
{
$zhongwenku[$i] = mb_substr($str, $i,1,"UTF-8");
}
$result = " ";
// 画像に書き込む 4 文字
for($i=0; $i<4 ; $i++)
{
switch (rand(0, 1))
{
case 0:
$ result.=$zhongwenku[rand(0, $zhongwenku_size-1)]
break; result.=dechex(rand(0,15));
break;
}
}
$_SESSION ["check"] = $result;
// 幅 100、高さ 30 の True Color イメージを作成します
$ img = imagecreatetruecolor(100, 30);
// 背景色を割り当てる
$bg = imagecolorallocate($img, 0 , 0, 0);
// テキストの色を割り当てる
$te = imagecolorallocate($img, 255,255,255); // 画像に文字列を書き込みます
//imagestring($img, rand(3,8), rand(1,70), rand(1,10), $result, $te); // 特殊なフォントを書き込むことができますロードされたフォントに従って画像上に
imagettftext($img, 13, rand(2, 9), 20 ,20, $te, "MSYH.TTF",$result);
$_SESSION["check"] = $結果;
for($i=0; $i<3; $i++)
{
// $ t = imagecolorallocate($img, rand(0, 255),rand(0, 255),rand(0, 255) ));
// 線を描く
imageline($img, 0, rand(0, 20), rand(70,100), rand(0, 20), $te);
}
$t = imagecolorallocate($img, rand(0, 255),rand(0, 255),rand(0, 255));
/ / 画像にノイズを追加します
for($i=0; $i<200; $i++)
{
imagesetpixel ($img, rand(1, 100), rand(1, 30), $t);
}
// 今回は画像内のjpegを送信することを指定するhttpヘッダー情報を送信
header("Content-type : image/jpeg");
// jpeg 画像をブラウザに出力します
imagejpeg($img);
?>
submit.php
コードをコピーします
コードは次のとおりです:
}else{
echo" 申し訳ありませんが、確認コードが間違って入力されました";
}
}
?>
MRYH.ttf が設定したいフォントです。
http://www.bkjia.com/PHPjc/328100.html
true

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Go 言語は、クロージャとリフレクションという 2 つの動的関数作成テクノロジを提供します。クロージャを使用すると、クロージャ スコープ内の変数にアクセスでき、リフレクションでは FuncOf 関数を使用して新しい関数を作成できます。これらのテクノロジーは、HTTP ルーターのカスタマイズ、高度にカスタマイズ可能なシステムの実装、プラグイン可能なコンポーネントの構築に役立ちます。

C++ 関数の名前付けでは、読みやすさを向上させ、エラーを減らし、リファクタリングを容易にするために、パラメーターの順序を考慮することが重要です。一般的なパラメータの順序規則には、アクション-オブジェクト、オブジェクト-アクション、意味論的な意味、および標準ライブラリへの準拠が含まれます。最適な順序は、関数の目的、パラメーターの種類、潜在的な混乱、および言語規約によって異なります。

効率的で保守しやすい Java 関数を作成するための鍵は、シンプルに保つことです。意味のある名前を付けてください。特殊な状況に対処します。適切な可視性を使用してください。

1. SUM 関数は、列またはセルのグループ内の数値を合計するために使用されます (例: =SUM(A1:J10))。 2. AVERAGE 関数は、列またはセルのグループ内の数値の平均を計算するために使用されます (例: =AVERAGE(A1:A10))。 3. COUNT 関数。列またはセルのグループ内の数値またはテキストの数をカウントするために使用されます。例: =COUNT(A1:A10)。 4. IF 関数。指定された条件に基づいて論理的な判断を行い、結果を返すために使用されます。対応する結果。

C++ 関数のデフォルト パラメーターの利点には、呼び出しの簡素化、可読性の向上、エラーの回避などがあります。欠点は、柔軟性が限られていることと、名前の制限があることです。可変引数パラメーターの利点には、無制限の柔軟性と動的バインディングが含まれます。欠点としては、複雑さの増大、暗黙的な型変換、デバッグの難しさなどが挙げられます。

カスタム PHP 関数と定義済み関数の違いは次のとおりです。 スコープ: カスタム関数はその定義のスコープに限定されますが、事前定義関数はスクリプト全体からアクセスできます。定義方法: カスタム関数は function キーワードを使用して定義されますが、事前定義関数は PHP カーネルによって定義されます。パラメータの受け渡し: カスタム関数はパラメータを受け取りますが、事前定義された関数はパラメータを必要としない場合があります。拡張性: カスタム関数は必要に応じて作成できますが、事前定義された関数は組み込みで変更できません。

C++ の例外処理は、特定のエラー メッセージ、コンテキスト情報を提供し、エラーの種類に基づいてカスタム アクションを実行するカスタム例外クラスを通じて強化できます。 std::Exception から継承した例外クラスを定義して、特定のエラー情報を提供します。カスタム例外をスローするには、throw キーワードを使用します。 try-catch ブロックでdynamic_castを使用して、キャッチされた例外をカスタム例外タイプに変換します。実際の場合、open_file 関数は FileNotFoundException 例外をスローします。例外をキャッチして処理すると、より具体的なエラー メッセージが表示されます。

C++ 関数の参照パラメーター (基本的には変数のエイリアス、参照を変更すると元の変数が変更されます) とポインター パラメーター (元の変数のメモリ アドレスを保存し、ポインターを逆参照して変数を変更します) は、変数を渡したり変更したりするときに使用方法が異なります。参照パラメーターは、コンストラクターまたは代入演算子に渡されるときのコピーのオーバーヘッドを避けるために、元の変数 (特に大きな構造体) を変更するためによく使用されます。ポインター パラメーターは、メモリの場所を柔軟に指定したり、動的データ構造を実装したり、オプションのパラメーターを表すために null ポインターを渡したりするために使用されます。
