【PHP】GDでメールアドレスを画像出力

PHPにおいては、GDライブラリを使用すると、簡単に画像を出力できます。

そこで、ここでは、スパム対策にPHPを使いメールアドレスを画像で出力する方法を覚書しておきます。

なお、参考は自己責任でお願いします。

以下を、mail_png.phpとして保存します。

<?php

//header出力-png
header('Content-Type: image/png');

//キャンバス作成(x座標, y座標)
$canvas = @imagecreatetruecolor(250, 40)
 or die('Cannot initialize image.');

// アンチエイリアスを有効化(無くてもよい)
imageantialias($canvas, true);

//カラー設定(適当な値)
$silver = imagecolorallocate($canvas, 120, 120, 120); //銀
$gray   = imagecolorallocate($canvas, 180, 180, 180); //灰
$white  = imagecolorallocate($canvas, 255, 255, 255); //白

//カラーサンプル
/****
$black  = imagecolorallocate($canvas,   0,   0,   0);
$red    = imagecolorallocate($canvas, 255,   0,   0);
$green  = imagecolorallocate($canvas,   0, 128,   0);
$blue   = imagecolorallocate($canvas,   0,   0, 255);
$orenge = imagecolorallocate($canvas, 255, 165,   0);
$purple = imagecolorallocate($canvas, 128,   0, 128);
$silver = imagecolorallocate($canvas, 192, 192, 192);
$gray   = imagecolorallocate($canvas, 216, 216, 216);
$white  = imagecolorallocate($canvas, 255, 255, 255);  
****/

//背景を白に塗りつぶし
imagefill($canvas, 0, 0, $white);

//囲み線(長方形)
imagerectangle($canvas, 1, 1, 248, 38, $gray); //余白1px

//文字入力(im, font, x, y, string, color)
imagestring($canvas, 5, 12, 12, 'info@example.com', $silver);

//出力-png
imagepng($canvas);

//破棄
imagedestroy($canvas);

?>

とても簡単です。実質10行ほどで画像出力ができます。

なお、HTML上で画像を呼び出すときは、次のようにします。

<img src="./mail_png.php">

以上です。

カテゴリー: PHP パーマリンク

コメントを残す

メールアドレスが公開されることはありません。