[PHP] problème avec un regex

Bonjour,

J'ai conçus grâce aux regex, mon propre BBCode.
Dans un sens, tout marche sans problème
exemple:
[b]texte en gras[ /b]

Mais lorsque je veux faire un formulaire pour modifier un texte, forcément, je dois inverser la regex et donc transformer les balises HTML en BBCode.
C'est là que ça coince.
Voila ma regex
$comment = preg_replace('#<img src="\.\./images/smileys/smile\.gif" alt=":\)" />#isU', ':\)', $comment);

malgré ça, il ne me remplace pas l'image par ':)'

Merci de vos aides.
--
L'amour, c'est comme les spaghettis; quand c'est mou, c'est cuit. (proverbe belge)

7 réponses

  1. Contributeur
    Pourquoi ne pas stocker en BBCode et afficher en HTML ? Tu pourras avoir tout le temps ton BBCode (pour l'édition par exemple).
    1. Oui c'était une solution ^^" et surement plus simple.
      Mais comme j'ai fais de cette manière, tout changer, signifie aussi modifier toute mes tables et cela me prendrais beaucoup trop de temps :s
      1. Il y a quoi dans ton alt quand tu regardes la source avec ton navigateur ?
        1. Il y a
          alt=" :\) "

          Je viens de voir quelque chose de bizarre.
          Si j'écrit ceci
          $comment = preg_replace('#<img src="\.\./images/smileys/smile\.gif" alt=":\)" />#isU', ':ggf)', $comment);

          j'ai comme résultat
          <img src="../images/smileys/smile.gif" alt=" :ggf) " />