Page 1 sur 1

Comment remplacer [url] et [/url] (bbcode) en balise html

Posté : 06 janv. 2008, 01:00
par alaingpl
Bonsoir,
j'ai cette ligne de code pour éditer un lien

Code : Tout sélectionner

<input type="button" id="lien" name="lien" value="Lien" onClick="javascript:bbcode('[url]', '[/url]');return(false)" />
Puis j'ai cette ligne pour traiter les afin de les transformer en balise html

Code : Tout sélectionner

//lien $texte = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0">$0</a>', $texte);
Lorsque j'appelle la page où le lien doit apparaître les balises bbcode entourent le texte. Je devrais avoir ça http://www.lesite.fr mais j'ai ça :

Code : Tout sélectionner

[url]www.lesite.fr[/url]


Ou dois je modifier et que dois je modifier pour que cela s'affiche correctement ?

Merci d'avance de l'aide

Posté : 06 janv. 2008, 01:22
par Victor BRITO
Essaie ce code :
$texte = '[url]www.lesite.fr[/url]';
$texte_html = preg_replace ("#\[url\](.)+?\[/url\]#i", '<a href="http://\\1">\\1</a>', $texte);
// Si le BBCode contient déjà un http:// ou un https://, suppression du doublon
$texte_html = preg_replace ("#http://(https?://)#i", '\\1', $texte_html);

Posté : 06 janv. 2008, 01:40
par alaingpl
Si je fais ça :

Code : Tout sélectionner

$texte = preg_replace ("#\[url\](.)+?\[/url\]#i", '<a href="http://\\$1">\\$1</a>', $texte);
il écrit $1

Si je fais ça avec 1 ou $1 :

Code : Tout sélectionner

$texte_html = preg_replace ("#\[url\](.)+?\[/url\]#i", '<a href="http://\\$1">\\$1</a>', $texte);
Il écrit

Code : Tout sélectionner

[url]www.lesite.fr[/url]
Personnellement je ne vois pas comment faire ?

Posté : 06 janv. 2008, 15:29
par Ryle
Peut être en te décidant soit pour la syntaxe $1 soit pour la syntaxe \1 pour récupérer le contenu de la parenthèse capturante et en évitant de mélanger les deux ? ;)

Posté : 06 janv. 2008, 22:32
par alaingpl
Je l'ai écrit de la façon suivante :
<? 
$texte = preg_replace('`\[url\](.+)\[/url\]`isU' , '<a href="http://$1">$1</a>', $texte);
et ça fonctionne. Il affiche http://www.lesite.fr et c'est que je veux.
Merci de l'aide.

Posté : 06 janv. 2008, 22:43
par zeus
Et la syntaxe [url=www.monsite.fr]mon site[/url] ?

Posté : 07 janv. 2008, 00:59
par alaingpl
L'adresse en www change régulièrement et nommer l'adresse [ url=www.monsite.fr]mon site[/url] me donnera aucune liberté.
Je précise que je modifie mes pages à l'aide d'un formulaire.

Merci de l'aide