2010-11-27 5 views
1

Ich habe ein automatisiertes System, das bestimmte E-Mails anzeigt. Um zu verhindern, dass Spam-Bots die E-Mails abholen, möchte ich ein PHP-Skript erstellen, das automatisch eine '[REMOVE THIS]' - Zeichenfolge direkt vor dem '@' Zeichen in einer E-Mail hinzufügt.Wie füge ich String-Werte in der Mitte einer anderen Zeichenfolge mit PHP hinzu?

substr_replace() und strpos() funktionieren nicht, weil substr_replace erfordert, dass die ersetzende Zeichenfolge die gleiche Länge wie die ursprüngliche Zeichenfolge hat, und strpos() nur jeweils einen Buchstaben/Symbol ersetzen kann. Ich muss in der Lage sein, eine ganz neue Zeichenfolge einzufügen, "[REMOVE THIS]", während nichts aus der ursprünglichen Zeichenfolge gelöscht wird.

Wie mache ich das?

Antwort

0

preg_replace()preg_replace("/\@/", "[REMOVE THIS]@", $emailaddress)

+0

Für einen einfachen ersetzen wie 'str_replace' wird ausreichen. – Michael

+0

Obwohl ich ein einfaches Beispiel verwendet habe, möchten Sie vielleicht die Regex hinzufügen, um sicherzustellen, dass Sie sie vor eine E-Mail-Adresse stellen und nicht von etwas anderem. Obwohl die Regex für die Bewertung von E-Mails die schlimmste ist, die ich je gesehen habe. :) – Rahly

0

So einfach wie diese:

$obfuscated_email = str_replace('@', '[REMOVE THIS]@', $real_email); 

und wieder zurück:

$real_email = str_replace('[REMOVE THIS]', '', $obfuscated_email); 
1

Mit anderen Worten wird [email protected] Name [REMOTE DIESE] @site .com?

<?php 
$email = "[email protected]"; 
echo str_replace("@", "[REMOVE THIS]@", $email); 
?> 

Oder Sie verwenden:

http://www.wbwip.com/wbw/emailencoder.html

Geben Sie Ihre E-Mail, die codierte Version erhalten, setzen Sie es in Ihre Website und es wird Ihre richtige E-Mail und Bots zeigen wird nicht in der Lage sein, es zu greifen, da es nur Code ist, obwohl es das echte Ergebnis ausstrahlt. Aber wenn Bots den Code durchsuchen, wird alles, was sie sehen, Code sein.

Verwandte Themen