PHp : Interpreter bbcode

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

2fou
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 223
Inscription: Lun Juil 07, 2003 23:50

PHp : Interpreter bbcode

Message le Mer Oct 19, 2005 10:53

bonjour,

j'ai pour un site dans une page d'admin : un formulaire d'insertion de texte : textarea + boutons de mise en forme bbcode (gras, souligné, lien, et image). Après validation, ce texte mis en forme (ajout des balises bbcode) est insérés dans ma bdd.
Puis sur une page du site du site public : j'affiche ce texte en transformant les balises bbcode en html. Pour cela, j'ai récupéré un script.
ça fonctionne pour le gras, l'italique, le souligné, l'insertion d'image, le lien classique [ u r l ] http://www.webrankinfo.com [ / u r l ] transformé en <a href="http://www.webrankinfo.com">http://www.webrankinfo.com</a>
.

Parcontre, je n'arrive pas à transformer : [ u r l = http://www.webrankinfo.com ] Référencement google[ / u r l ] en <a href="http://www.webrankinfo.com">Référencement google</a>



le scripts que j'utilise pour la transformation est le suivant :



Code: Tout sélectionner
function bbCode($description)
// remplace les balises BBCode par des balises HTML
{
   
   // gras
   $description=str_replace("[b]", "<strong>", $description);
   $description=str_replace("[/b]", "</strong>", $description);
   
   // italique
   $description=str_replace("[i]", "<em>", $description);
   $description=str_replace("[/i]", "</em>", $description);
   
   // soulignement
   $description=str_replace("[u]", "<u>", $description);
   $description=str_replace("[/u]", "</u>", $description);
   
   // lien
   $regLienSimple="\[url\] ?([^\[]*) ?\[/url\]";
   $regLienEtendu="\[url ?=([^\[]*) ?] ?([^]]*) ?\[/url\]";
   if (ereg($regLienSimple, $description)) $description=ereg_replace($regLienSimple, "<a href=\"\\1\">\\1</a>", $description);
   else $description=ereg_replace($regLienEtendu, "<a href=\"\\1\" target=\"_blank\">\\2</a>", $description);

   
   // image
   $regImage="\[img\] ?([^\[]*) ?\[/img\]";
   $regImageAlternatif="\[img ?= ?([^\[]*) ?\]";
   if (ereg($regImage, $description)) $description=ereg_replace($regImage, "<img src=\"\\1\" alt=\"\" border=\"0\" />", $description);
   else $description=ereg_replace($regImageAlternatif, "<img src=\"\\1\" alt=\"\" border=\"0\" />", $description);
   
   return $description;
}


Code: Tout sélectionner
echo  bbCode($description);


Avez-vous une idée des modifications à apporter à ce code pour y parvenir ?
j'avoue ne pas bien comprendre le fonctionnement du script concernant les liens et les images.

ps : quel format bbcode concerne $regImageAlternatif ?

ps : à votre avis est-il préférable d'avoir dans la bdd le texte au format bbcode [b] ou au format html <strong> ?

Merci de votre Aide

2fou
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 223
Inscription: Lun Juil 07, 2003 23:50

Message le Mer Oct 19, 2005 13:26

Bon, pour la transformation de [ u r l = ... ]bla bla bla[/url], c'est bon, j'ai trouvé le code suivant, qui fonctionne :
Code: Tout sélectionner
   // lien

$description = nl2br($description);

        $description = preg_replace('`\[url=([http://].+?)](.+?)\[/url]`si','<a href="#" onclick="window.open(\'$1\',\'popup\');" title="$1">$2</a>',$description);

        $description = preg_replace('`\[url=(.+?)](.+?)\[/url]`si','<a href="#" onclick="window.open(\'http://$1\',\'popup\');" title="$1">$2</a>',$description);

        $description = preg_replace('`\[url]([http://].+?)\[/url]`si','<a href="#" onclick="window.open(\'$1\',\'popup\');" title="$1">$1</a>',$description);

        $description = preg_replace('`\[url](.+?)\[/url]`si','<a href="#" onclick="window.open(\'http://$1\',\'popup\');" title="$1">$1</a>',$description);


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités