Paulund

Encode Email Addresses With PHP

Spam bots will crawl your pages exactly the same way Search Engines crawls your pages, but while Search Engines are crawling to index your content, spam bots are crawling to find certain information. One of the most common bits of data they are searching for are email addresses, this is because they can store these email addresses in a list and send out spam emails. Displaying your email address on your web page makes it very easy for your visitors to store this and send you email, but you will need to get around the spam bot problem to do this you will need to HTML encode your email address. While encoding your email address will make it display correctly in the browser in the source code the email address will be encoded so that spam bots can not read the email. Below is a PHP code snippet which will allow you to pass in an email address and encode it so that you can display the email address on your website. This uses the PHP function ord() to return an ASCII value for the character used in the email.


/**
 * Encode an email address to display on your website
 */
function encode_email_address( $email ) {

     $output = '';

     for ($i = 0; $i < strlen($email); $i++) 
     { 
          $output .= '&#'.ord($email[$i]).';'; 
     }

     return $output;
}

To use in on your page all you have to do is pass in a parameter and it will return the encoded email you can now use on your website.


$encodedEmail = encode_email_address( '[email protected]' );

printf('<a href="mailto:%s">%s</a>', $encodedEmail, $encodedEmail);