REGEX: Convertir url...

Statut
N'est pas ouverte pour d'autres réponses.

Styleman

Touriste
Bonjour,

Voila je fais un système de messagerie interne, et je voudrais que lorsque l'on entre une url, cela convertisse automatiquement en <a href....</a>, mais que si, une url est spécifié en mettant dans le textaera
Code:
[LIEN url=http..... ]texte[/LIEN]
ça convertisse l'url comme il faut, mais comme, j'ai ces 2 regex, quand je fais
Code:
 [LIEN url=http://www.gamerz.be ]Texte[/LIEN]
J'obtiens sur la page le resultat en html le texte avec comme lien: <a href="<a href=http://www.gamerz.be target=_blank>">

Enfin, le premier regex converti l'url qu'il y a entre [lien et [/lien]

Et j'aimerais, que si il y'a présence de ces "balises" le 1er regex ne s'applique pas dessus.

1er regex: rendre url cliquable:
Code:
$texte = eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])","<A HREF=\"\\1://\\2\\3\" TARGET=\"_blank\" CLASS=\"lien\">\\1://\\2\\3</A>",$texte);
2eme: remplacer [LIEN] par a href:
Code:
$texte = preg_replace('/(\[LIEN url=)([^\]]*)\](.*?)(\[\/LIEN\])/', "<A href='\\2'>\\3</A>", $texte);
Voila, merci beaucoup de vos réponses :wink:
 

Tigrou

Touriste
Styleman a dit:
Bonjour,

1er regex: rendre url cliquable:
Code:
$texte = eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])","<A HREF=\"\\1://\\2\\3\" TARGET=\"_blank\" CLASS=\"lien\">\\1://\\2\\3</A>",$texte);
2eme: remplacer [LIEN] par a href:
Code:
$texte = preg_replace('/(\[LIEN url=)([^\]]*)\](.*?)(\[\/LIEN\])/', "<A href='\\2'>\\3</A>", $texte);
Voila, merci beaucoup de vos réponses :wink:
Je pense que ton probleme vient du fait que dans les deux remplacement de saisie de texte tu utilise la balise <a href=...></a>
Or je ne vois pas pourquoi tu ne te limite pas a placer cette balise dans la 2eme modif de texte...
c est la modif de [lien] qui devrait introduire la balise <a href=...></a>
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut