Bonjour,
Aujourd'hui je passe vous voir pour un problème de remplacement par expression régulière.
Dans une chaîne de caractères je cherche à remplacer les urls par des balises <a> pour rendre ces urls cliquables. Jusque là ce n'est pas trop difficile, seulement ma chaine de caractères en entrée contient certaines urls qui sont déjà entourées de la balise <a>, celles-ci ne sont donc plus à remplacer.
Voilà un exemple de la chaîne d'entrée :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $in = "lorem ipsum "; $in.= "\nhttp://www.google.fr<p>http://www.google.com/index.php?t=yA1&e=2</p> <a href=\"http://www.google.com?f=5B2&e=5\">lien</a> lorem ipsum http://www.google.com ";
Les 2 premiers liens doivent être remplacés, ainsi que le dernier
Pour l'instant voilà ce que j'ai essayé :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part echo preg_replace("/((mailto|https?):\/\/[^<>\"'\s]+)/ims", '<a href="$1">$1</a>', $in);
mais le résultat n'est pas tout à fait correct : le troisième lien est mal remplacé. Voilà le résultat
Quelle serait la bonne expression régulière ? Une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 lorem ipsum <a href="http://www.google.fr">http://www.google.fr</a><p><a href="http://www.google.com/index.php?t=yA1&e=2">http://www.google.com/index.php?t=yA1&e=2</a></p><a href="<a href="http://www.google.com?f=5B2&e=5">http://www.google.com?f=5B2&e=5</a>">lien</a> lorem ipsum <a href="http://www.google.com">http://www.google.com</a>
Partager