Convert an e-mail address to character entities to kill spam
Posted: Thu Apr 27, 2006 11:19 am
I'm trying to write a PHP script to automatically convert users' e-mail addresses to character entities to display on a guestbook page without attracting spambots. There's a pretty useful tool (written in Javascript) located here:
http://wbwip.com/wbw/emailencoder.html
I wrote a similar script in PHP, but there's got to be a better way! I'm hoping that there's a function that already exists for doing this, or some sort of standard, simple method that I just haven't learned of yet. Does anyone happen to know of one, or have any suggestions to improve this script?
Thanks in advance!
BTW, this is the script that I'm using to do this currently - inefficient, yes, but it does work.
http://wbwip.com/wbw/emailencoder.html
I wrote a similar script in PHP, but there's got to be a better way! I'm hoping that there's a function that already exists for doing this, or some sort of standard, simple method that I just haven't learned of yet. Does anyone happen to know of one, or have any suggestions to improve this script?
Thanks in advance!
BTW, this is the script that I'm using to do this currently - inefficient, yes, but it does work.
Code: Select all
// encode email
$enc = '';
$a = strlen($email);
for ($i = 0; $i < $a; $i++) {
switch ($email[$i]) {
case "A": $enc .= "A"; break;
case "a": $enc .= "a"; break;
case "B": $enc .= "B"; break;
case "b": $enc .= "b"; break;
case "C": $enc .= "C"; break;
case "c": $enc .= "c"; break;
case "D": $enc .= "D"; break;
case "d": $enc .= "d"; break;
case "E": $enc .= "E"; break;
case "e": $enc .= "e"; break;
case "F": $enc .= "F"; break;
case "f": $enc .= "f"; break;
case "G": $enc .= "G"; break;
case "g": $enc .= "g"; break;
case "H": $enc .= "H"; break;
case "h": $enc .= "h"; break;
case "I": $enc .= "I"; break;
case "i": $enc .= "i"; break;
case "J": $enc .= "J"; break;
case "j": $enc .= "j"; break;
case "K": $enc .= "K"; break;
case "k": $enc .= "k"; break;
case "L": $enc .= "L"; break;
case "l": $enc .= "l"; break;
case "M": $enc .= "M"; break;
case "m": $enc .= "m"; break;
case "N": $enc .= "N"; break;
case "n": $enc .= "n"; break;
case "O": $enc .= "O"; break;
case "o": $enc .= "o"; break;
case "P": $enc .= "P"; break;
case "p": $enc .= "p"; break;
case "Q": $enc .= "Q"; break;
case "q": $enc .= "q"; break;
case "R": $enc .= "R"; break;
case "r": $enc .= "r"; break;
case "S": $enc .= "S"; break;
case "s": $enc .= "s"; break;
case "T": $enc .= "T"; break;
case "t": $enc .= "t"; break;
case "U": $enc .= "U"; break;
case "u": $enc .= "u"; break;
case "V": $enc .= "V"; break;
case "v": $enc .= "v"; break;
case "W": $enc .= "W"; break;
case "w": $enc .= "w"; break;
case "X": $enc .= "X"; break;
case "x": $enc .= "x"; break;
case "Y": $enc .= "Y"; break;
case "y": $enc .= "y"; break;
case "Z": $enc .= "Z"; break;
case "z": $enc .= "z"; break;
case "0": $enc .= "0"; break;
case "1": $enc .= "1"; break;
case "2": $enc .= "2"; break;
case "3": $enc .= "3"; break;
case "4": $enc .= "4"; break;
case "5": $enc .= "5"; break;
case "6": $enc .= "6"; break;
case "7": $enc .= "7"; break;
case "8": $enc .= "8"; break;
case "9": $enc .= "9"; break;
case "&": $enc .= "&"; break;
case " ": $enc .= " "; break;
case "_": $enc .= "_"; break;
case "-": $enc .= "-"; break;
case "@": $enc .= "@"; break;
case ".": $enc .= "."; break;
}
}