Spammer sind eine Plage. Mit der folgenden Funktion kann eine Email Addresse mit PHP verschlüsselt werden.
function convert_email_adr($email) {
$pieces = str_split(trim($email));
$new_mail = '';
foreach ($pieces as $val) {
$new_mail .= '&#'.ord($val).';';
}
return $new_mail;
}
Die Emailadresse wird mit folgender Zeile ausgegeben
<?php echo convert_email_adr('user@email.com'); ?>
Im Source der Website sieht die Emailadresse so aus
Die daraus resultierende Emailadresse sieht für Besucher des Blogs so aus
user@email.com
und kann von Bots nicht ohne weiteres ausgelesen werden.
Das WordPress Plugin Email Obfuscator von Daniel Hong verschlüsselt Emailadressen im Blog mit ROT13 und verhindert so das Auslesen der Emailadressen durch Spam-Bots. Der Blogleser kann die Adressen normal lesen.
Diese Funktion extrahiert Email Adressen aus einem vorgegebenen String und gibt ein Array zurück.
function extract_emails($str){
// This regular expression extracts all emails from
// a string:
$regexp = '/([a-z0-9_\.\-])+\@(([a-z0-9\-])+\.)+([a-z0-9]{2,4})+/i';
preg_match_all($regexp, $str, $m);
return isset($m[0]) ? $m[0] : array();
}
$test_string = 'This is a test string...
test1@example.org
Test different formats:
test2@example.org;
<a href="test3@example.org">foobar</a>
<test4@example.org>
strange formats:
test5@example.org
test6[at]example.org
test7@example.net.org.com
test8@ example.org
test9@!foo!.org
foobar
';
print_r(extract_emails($test_string));
/*
Returns this array:
Array
(
[0] => test1@example.org
[1] => test2@example.org
[2] => test3@example.org
[3] => test4@example.org
[4] => test5@example.org
[5] => test7@example.net.org.com
)
*/
Quelle: jonasjohn.de
Ein einfacher universeller Filter, der zum Filtern von Emailadressen, Badwords, Text usw. eingesetzt werden kann.
$emailadressen = array("email1.de", "email2.de", "email3.de"); // Gesperrte Emailadressen
foreach ($emailadressen as $word) {
if(eregi($word, $email)) {
$error = TRUE; }
}
if($error) {
echo "Diese Emailadresse ist gesperrt";
}[/php]
Das Script prüft über eine Schleife, ob in der Variable $email eine der gesperrten Emailadressen vorkommt. Falls ja wird der Text "Diese Emailadresse ist gesperrt" ausgegeben.
Anstatt des Textes kann man aus dem Script austeigen umleiten usw.
Mit diesen Script kann man zum Beispiel bestimmte User die zum Beispiel "wegwerf" Emailadressen für eine Registrierung mit Bestätigung benutzen aussperren.
Es gibt viele verschiedene Lösungsansätze um das gleiche Resultat zu erzielen.
Bitte postet Eure Lösungen als Kommentar. Bin gespannt auf die unterschiedlichen Ansätze.