2010-07-21 3 views

Répondre

13

Vous pouvez utiliser preg_replace pour le faire.

des e-mails:

$pattern = "/[^@\s]*@[^@\s]*\.[^@\s]*/"; 
$replacement = "[removed]"; 
preg_replace($pattern, $replacement, $string); 

pour urls:

$pattern = "/[a-zA-Z]*[:\/\/]*[A-Za-z0-9\-_]+\.+[A-Za-z0-9\.\/%&=\?\-_]+/i"; 
$replacement = "[removed]"; 
preg_replace($pattern, $replacement, $string); 

Ressources

entrée manuel PHP: http://php.net/manual/en/function.preg-replace.php

crédit où le crédit est dû: email regex prise de preg_match ma NPAGE et URL regex tirée de: http://www.weberdev.com/get_example-4227.html

+0

hmm juste essayé et supprime le texte entier que j'avais ... – JEagle

+0

Pouvez-vous poster un petit échantillon du texte? – Josiah

+0

C'était juste un texte aléatoire que j'avais. Rien de spécifique, juste une adresse email et quelques liens – JEagle

1

Essayez ceci:

$patterns = array('<[\w.][email protected][\w.]+>', '<\w{3,6}:(?:(?://)|(?:\\\\))[^\s]+>'); 
$matches = array('[email removed]', '[link removed]'); 
$newString = preg_replace($patterns, $matches, $stringToBeMatched); 

Note: vous pouvez passer un tableau de motifs et correspond à preg_replace au lieu de courir deux fois.

+0

merci. cela a fonctionné, mais ça ne marche pas avec www.site.com – JEagle

+0

www.site.com n'est pas un lien. vous voulez également supprimer les URL? – Fosco

+0

oups ... oui, s'il vous plaît – JEagle

1

La réponse que j'allais upvote a été supprimée. Il est lié à un article du Journal Linux Validate an E-Mail Address with PHP, the Right Way qui indique ce qui ne va pas avec presque toutes les expressions rationnelles que quelqu'un propose.

La gamme de formes valides d'une adresse électronique est beaucoup plus large que ce que la plupart des gens pensent.

0

Ma réponse est une variante de /[^@\s]*@[^@\s]*\.[^@\s]*/ des e-mails de Josiah, qui fonctionne très bien, mais correspond également à tout puctuation après l'adresse e-mail lui-même: demo 1

Adapt la regex comme suit /[^@\s]*@[^@\s\.]*\.[^@\s\.,!?]*/ pour exclure .,! et ?: demo 2