Problème dans BBCODE

Bonjour à tous,
voilà j'ai conçu un BBCODE pour mon site, cependant j'ai la balise de citation:
{citation="pseudo"}le  message qui est cité{/cite}

Seulement voilà, comme je n'autorise pas le HTML, et que j'ai mis un htmlspecialchars lors de l'enregistrement dans la base de données, les " deviennent des "
Donc quand je formate lorsque j'appelle les enregistrements de la base de données et bien le BBCODE ne fonctionne pas car on obtient:
<code>{citation=&quot;pseudo&quot;}le  message qui est cité{/cite}
</code>

Je voudrais savoir comment faire pour passer ce problème, sans être amené à retirer mon htmlspecialchars.
J'ai donc eu l'idée de faire, avant le formatage du BBCODE une regex qui remplacera dans ma chaîne les " pour les remplacer par des " mais je ne sais plus comment le faire et je ne sais pas si sa marchera.

Quelqu'un saurait comment faire ?

Merci d'avance.

4 réponses

  1. Oups, comme il y a des caractères spéciaux, sa ne s'affiche pas correctement.

    Et en fait
    lors de l'enregistrement dans la base de données, les " deviennent des &quot; 

    et donc le BBCODE ne fonctionne pas car on obtient
    {citation=&quot;pseudo&quot;}le  message qui est cité{/cite}
    1. Oups, comme il y a des caractères spéciaux, sa ne s'affiche pas correctement.

      Et en fait
      lors de l'enregistrement dans la base de données, les " deviennent des &quot; 


      et donc le BBCODE ne fonctionne pas car on obtient

      {citation=&quot;pseudo&quot;}le  message qui est cité{/cite}
      1. Bonjour, et bien tu peut faire tout simple comme Regex:
        $variable = str_replace ( '&quot;', '"', $variable);


        Bonne chance et bonne journée.
        1. et pourquoi tu ne retire pas carement les guillemets (au lieu de retirer le htmlspecialchar) ... ?

          il faut juste modifier les scripts en consequence