前の記事 ≪:IEをモダンなブラウザ風に動作させる10の方法
次の記事 ≫:早くも登場したiPadのGUIパーツが揃ったPhotoshopファイル

PHPでメールアドレスを画像化せずに簡単にスパム対策する方法

2010年02月03日-はてなブックマーク

スポンサード リンク
[PR] 英単語を忘却曲線アプリを使って超効率よく記憶する方法

hide_email

PHPでメールアドレスを画像化せずに簡単にスパム対策する方法です。
方法というよりも関数が公開されていて、次のように非常に簡単に使うことができます。

<?php echo hide_email('test@test.com'); ?>

hide_email 関数に 自分のメールアドレス を渡すだけです。
これだけで、次のようにメールアドレスがクリックできる形で表示されます。

[javascript protected email address]

HTMLに出力されるコードは以下です。

<SPAN id=e282852682>[javascript protected email address]</SPAN> <SCRIPT type=text/javascript>/*<![CDATA[*/eval("var a=\"PcXq@l82y.H3I_zNAtLQbr7M-9hSjfRDVGudOK+JipY0WaxgTCo6BmwveU45EsF1nZk\";var b=a.split(\"\").sort().join(\"\");var c=\"Ea5E_Ea5EX0vm\";var d=\"\";for(var e=0;e<c.length;e++)d+=b.charAt(a.indexOf(c.charAt(e)));document.getElementById(\"e282852682\").innerHTML=\"<a href=\\\"mailto:\"+d+\"\\\">\"+d+\"</a>\"")/*]]>*/</SCRIPT>

このように難読化されているので、平文テキストを処理するだけの単純なメールアドレスクローラーからは逃れられます。
もちろん、JavaScriptを解釈できるようなクローラーであったりした場合には意味がありませんが、「mailto:メールアドレス」の形式を使って少しでも防御したいという場合に使えますね。

関連の記事検索:PHP, mail, スパム対策, JavaScript
スポンサード リンク

By.KJ : 2010年02月03日 10:02 livedoor Readerで購読 Twitterに投稿

間違いの指摘をしていただける方はメール、あるいはTwitter/FBでお願いします(クリック)