2010-11-27 7 views
1

J'ai un système automatisé affichant certains e-mails. Pour empêcher les robots spammeurs de récupérer les e-mails, je voudrais créer un script php qui ajoute automatiquement une chaîne '[REMOVE THIS]' juste avant le signe '@' dans un e-mail. Substr_replace() et strpos() ne fonctionnent pas car substr_replace requiert que la chaîne de remplacement ait la même longueur que la chaîne de caractères originale, et strpos() ne peut remplacer qu'une lettre/symbole à la fois. Je dois être capable d'ajouter un tout nouveau morceau de corde, '[REMOVE THIS]', sans rien supprimer de la chaîne d'origine.Comment ajouter des valeurs de chaîne au milieu d'une autre chaîne en utilisant PHP?

Comment faire?

Répondre

0

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

+0

Pour un remplacement simple comme ceci 'str_replace' suffira. – Michael

+0

Bien que j'aie utilisé un exemple simple, vous voudrez peut-être ajouter dans la regex pour vous assurer que vous le mettez devant une adresse e-mail et non à part d'autre chose. Bien que, le regex pour la validation du courrier électronique est le pire que j'ai jamais vu. :) – Rahly

0

Aussi simple que cela:

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

et retour:

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

En d'autres termes, [email protected] devient nom [REMOTE CE] @site .com?

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

Ou, vous pouvez utiliser:

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

Entrez votre e-mail, obtenir la version codée, mettez-le dans votre site et il affichera votre e-mail correcte et les bots ne sera pas en mesure de l'attraper, comme son code juste, mais il résume le résultat réel .. mais quand les robots cherchent dans le code, tout ce qu'ils verront est le code.

Questions connexes