Return to Snippet

Revision: 23251
at February 2, 2010 06:37 by fackz


Initial Code
<?php
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; } 
?>

//////////// USAGE ////////////

This is the PHP code you write where you want the E-mail address on your web page.

<?php echo hide_email('[email protected]'); ?>

This is what the E-mail address will look like for the visitor of your web page.

<span id="e401621484">[javascript protected email address]</span><script type="text/javascript">/*<![CDATA[*/eval("var a=\"4taVs.lchvwRT8DJFqzfejbE5QXM_-irgWkSHAPmU+d1I32xKZByoC@GYNL7pnu90O6\";var b=a.split(\"\").sort().join(\"\");var c=\"p37p8p37pa1GC\";var d=\"\";for(var e=0;e<c.length;e++)d+=b.charAt(a.indexOf(c.charAt(e)));document.getElementById(\"e401621484\").innerHTML=\"<a href=\\\"mailto:\"+d+\"\\\">\"+d+\"</a>\"")/*]]>*/</script>

Initial URL
http://www.maurits.vdschee.nl/php_hide_email/

Initial Description
PHP encrypts your E-mail address and generates the javascript that decrypts it. Most bots and spiders can't execute javascript and that is what makes this work.

Initial Title
php hide email function

Initial Tags
email, php

Initial Language
PHP