Automatic Email Address Protection PHP / JavaScript
It is important to protect email addresses on websites from being harvested by spambots.
"Email spambots collect e-mail addresses from the Internet in order to build mailing lists for sending unsolicited e-mail, also known as spam. Such spambots are web crawlers that can gather e-mail addresses from Web sites, newsgroups, special-interest group (SIG) postings, and chat-room conversations. Because e-mail addresses have a distinctive format, spambots are easy to write. A number of legislators in the U.S. are reported to be devising laws that would outlaw the spambot." – Wikipedia
This is my method for automatically detecting email addresses and replacing them with a javascript that will disguise them from spambots. The script works in two stages one in javascript and the other in php.
First the javascript function that outputs the mailto link:
function sb_email(user,site){ document.write('<a href=\"mailto:' + user + '@' + site + '\">'); document.write(user + '@' + site + '<\/a>'); }
The function has 2 parameters "user" and "site", which are the two parts of the email address either side of the "@". This function can be called like so:
sb_email('joe','bloggs.com');
The second part is the php functions that recognise email addresses and replace them with the javascript function to disguise them:
//function to output the js function create_js ($matches){ $parts = explode ('@', substr ($matches[0], 1)); if(substr($parts[1],-1)=='.'){$parts[1]=substr($parts[1],0,-1); $parts[2]='.';} $str = $matches[1].'<script language="JavaScript" type="text/javascript">'; $str .= 'sb_email("'.$parts[0].'", "'.$parts[1].'");'; $str .= '</script>'.$parts[2]; return $str; } $js_callback = "create_js "; //function to recognise emails function email_protect($text){ global $js_callback; $replace = '/([> ])[A-Z0-9._-]+@[A-Z0-9][A-Z0-9.-]{0,61}[A-Z0-9]\.[A-Z.]{2,6}/i'; $output = preg_replace_callback($replace, $js_callback, $text); return $output; }
The email_protect php function can be called on any text string like so:
echo email_protect($text);
It will automatically replace any email addresses in the text with the javascript, therefore hiding them from spambots.









This is very cool, thank you for sharing. I can't wait to try it
Hi, I tried this out and am having trouble getting it to work. Am I supposed to have 2 different layers, one for tadpole and one for mouse_mc? Also, my transparent pixels don't seem to be attached to my mouse…
Hi Sherry
They can be on separate layers, or both the same layer, it shouldn’t matter. Did you give the movie clips instance names in the ‘properties’ panel?
Sam
Hi there, just wondering if you’d have an tips on converting this to AS3. I’m very new to Flash and have been trying to do it all day!
Thanks in advance,
bex.