PHPでメールアドレスをスパム収集から回避する「hide_email」


hide_email
hide_emailはPHPでメールアドレスをソースから隠す関数です。

通常メールアドレスをそのままHTMLに記述してしまうとロボットなどにアドレスを収集され、ものすごいスパムの嵐を体験することになってしまいます。

この関数を使用すると、JavaScriptを生成し、ロボットなどがメールアドレスだと認識できないようにします。

IT/WEB業界への転職なら求人サイトGreen

以下のコードで実行可能なようです。

<php
echo hide_email('myadress@example.com');

function hide_email($email) { 
    $character_set  = '+-.0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';
    $key = str_shuffle($character_set); $cipher_text = '';  $id = 'e'.rand(1,999999999);
    for ($i=0; $i<strlen($email); $i+=1) $cipher_text.= $key[strpos($character_set,$email[$i])];
        $script = 'var a="'.$key.'";var b=a.split("").sort().join("");var c="'.$cipher_text.'";var d="";';
        $script.= 'for(var e=0;e<c.length;e++)d+=b.charAt(a.indexOf(c.charAt(e)));';
        $script.= 'document.getElementById("'.$id.'").innerHTML="<a href=\\"mailto:"+d+"\\">"+d+"</a>"';
        $script = "eval(\"".str_replace(array("\\",'"'),array("\\\\",'\"'), $script)."\")";
        $script = '<script type="text/javascript">/*<![CDATA[*/'.$script.'/*]]>*/</script>';
    return '<span id="'.$id.'">[javascript protected email address]</span>'.$script;
 }
?>

サイトにはJavaScriptを生成してくれるジェネレータもありますので、興味のある方は見てみてください。

 

この記事が気に入ったら
いいね!しよう

最新情報をお届けします

follow us in feedly