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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment remplacer [url] et [/url] (bbcode) en balise html

par alaingpl » 07 janv. 2008, 00:59

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

par zeus » 06 janv. 2008, 22:43

Et la syntaxe [url=www.monsite.fr]mon site[/url] ?

par alaingpl » 06 janv. 2008, 22:32

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.

par Ryle » 06 janv. 2008, 15:29

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 ? ;)

par alaingpl » 06 janv. 2008, 01:40

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 ?

par Victor BRITO » 06 janv. 2008, 01:22

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);

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

par alaingpl » 06 janv. 2008, 01:00

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