Bonjour à tous,
Je débute juste en regex donc je ne suis pas sur que mon problème peux se résoudre simplement...
Voici mon problème, je veux remplacer les adresses web d'un message par un lien (<a href) correspondant.
Voici la regex que j'ai pondue:
Mais je ne voudrais pas que ca me remplace si dans mon texte, j'ai déjà les balises a. Je m'explique voici un exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $message = preg_replace('!http://[a-z0-9?=&%./_+-]+!i',"<a href='$0' target='_blank'>$0</a>",$message);
Si je balance mon preg_replace la dessus, ca donne un truc comme ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 http://www.google.com <a href='http://www.yahoo.fr'>http://www.yahoo.fr</a>
Enfin un truc comme ça .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <a href='http://www.google.com'>http://www.google.com</a> <a href='<a href='http://www.yahoo.fr'>http://www.yahoo.fr</a>>http://www.yahoo.fr</a>
Donc vous voyez bien le problème. J'ai pensé à une solution que j'arrive à exprimer en francais mais pas en regex.
Si avant le lien il y a un "<a " mais pas de "</a>", ca ne doit pas remplacer...
Quelqu'un maitrise asser les regex pour m'aider ?
Merci
Greg
Partager