PHP および GD ライブラリを使用して色付きの検証コード イメージを生成するためのベスト プラクティス
Web アプリケーションを開発する場合、セキュリティを強化し、ロボットによる悪意のある操作を防ぐために検証コードを使用することが必要になることがよくあります。 PHP と GD ライブラリを使用するのが、キャプチャ画像を生成する一般的な方法です。この記事では、PHP と GD ライブラリを使用してカラフルな検証コード イメージを生成する方法を紹介し、いくつかのベスト プラクティス コード例を示します。
まず、GD ライブラリを使用してカラー検証コード イメージを生成するには、GD ライブラリがサーバーにインストールされていることを確認する必要があります。 GD ライブラリが利用可能かどうかは、PHP ファイルの phpinfo()
関数を使用して確認できます。例:
<?php phpinfo(); ?>
上記のコードを実行すると、出力情報で GD ライブラリの関連情報を見つけることができます。
次に、次の手順に従って色検証コード イメージを生成します。
imagecreatetruecolor()
関数を使用して、 one 指定された幅と高さのトゥルーカラー ピクチャ オブジェクト。 <?php $width = 200; $height = 50; $image = imagecreatetruecolor($width, $height); ?>
imagefill()
関数を使用して、画像の背景色を指定した色に設定します。 <?php $bg_color = imagecolorallocate($image, 255, 255, 255); // 白色 imagefill($image, 0, 0, $bg_color); ?>
mt_rand()
関数を使用して、指定された範囲内のランダムな整数を生成し、それを文字に変換できます。 <?php $code = ''; $code_length = 4; $charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; $charset_length = strlen($charset); for ($i = 0; $i < $code_length; $i++) { $code .= $charset[mt_rand(0, $charset_length - 1)]; } ?>
imagestring()
または imagefttext()
関数を使用して、画像上に検証コードを描画します。 <?php $text_color = imagecolorallocate($image, 0, 0, 0); // 黑色 $x = 10; $y = 25; $font_size = 20; // 使用imagestring函数 // imagestring($image, 5, $x, $y, $code, $text_color); // 或者使用imagefttext函数来支持更多字体和样式 $font_path = './fonts/arial.ttf'; imagefttext($image, $font_size, 0, $x, $y, $text_color, $font_path, $code); ?>
imagestring()
関数を使用する場合、最初のパラメータは使用するフォント スタイル (0 ~ 5) を指定します。数値が大きいほど、フォントは太くなります。
さらに多くのフォントとスタイルをサポートしたい場合は、imagefttext()
関数を使用して、フォント ファイルへのパス、フォント サイズ、傾斜角度、その他のパラメーターを指定できます。
imageline()
関数を使用して、画像上にランダムな色の干渉線を 1 つ以上描画して、画像の難易度を高めることができます。 <?php $line_color = imagecolorallocate($image, 200, 200, 200); // 灰色 for ($i = 0; $i < 10; $i++) { $x1 = mt_rand(0, $width); $y1 = mt_rand(0, $height); $x2 = mt_rand(0, $width); $y2 = mt_rand(0, $height); imageline($image, $x1, $y1, $x2, $y2, $line_color); } ?>
header()
関数を使用して画像タイプを指定し、次に imagepng()## を使用します。 # または
imagejpeg() およびその他の関数は画像を出力し、
imagedestroy() 関数を通じて画像オブジェクトを破棄します。
<?php header("Content-type:image/png"); imagepng($image); imagedestroy($image); ?>
以上がPHP および GD ライブラリを使用してカラフルな検証コード イメージを生成するためのベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。