Bonsoir,
Dans un texte, peut se trouver des liens url entouré de balises bbcode mais peuvent être envoyé de plusieurs façons,
Exemple 1 => [ URL ]http://developpez.net/[ /URL ]
Exemple 2 => developpez.net/
Exemple 1 => [ URL=http://developpez.net/]http://developpez.net/[ /URL ]
Exemple 2 => [ URL=developpez.net/]http://developpez.net/[ /URL ]
Exemple 5=> [ URL=http://developpez.net/]Le lien est un texte[ /URL ]
Exemple 6=> [ URL=developpez.net/]Le lien est un texte mais http:// n'a pas été saisie[ /URL ]
Voila grosso modo le problème, je cherche à construire une reg qui dans un premier temps supprime tout éventuel mot trouvé "http://" ou "https://", celui-ci est ajouté par la suite dans la balise <a href="http://... mais celle-ci bug car je souhaite pas modifier uniquement le contenu dans la balise « [URL= » et pas le contenu entre les deux balises..
[CODE] $bb_string = preg_replace("#\[URL=((http[s])://)$#i", "", $bb_string);
$bb_string = preg_replace("#\[URL=([^\r\n\t<\"]*?)\[\/URL\]#sie", "<a href=\"http://$1\" target=\"_blank\">$2</a>", $bb_string);
# Second cas de figure =http://lien...
$bb_string = preg_replace("#\[URL\]((http[s])://)\[URL\]#i", "", $bb_string);
$bb_string = preg_replace("#\[URL\]([^\r\n\t<\"]*?)\[\URL\]#sie", "<a href=\"http://$1\" target=\"_blank\">$2</a>", $bb_string);
[/CODE]
La seconde ligne consiste donc à rechercher dans la chaine soit une des deux possibilités (avec ou sans le signe = renseigné) et à construire la balise <a Href="http://...
Dans le cas ou le = n'est pas renseigné le http:// est supprimé
merci d'avance pour vos précieux conseils,
Partager