Regex vs bbcode

Fermé
alphon5o Messages postés 2 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 26 juin 2011 - Modifié par alphon5o le 25/06/2011 à 09:01
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 - 25 juin 2011 à 15:56
Bonjour,

j'ai mis en place des bbcode pour un blog que je suis entrain de developper. j'ai donc ecrit une fonction php qui transforme les bbcodes en leurs equivalents html. mon souci est au niveau des expressions reguliere. pour certain bbcode, c'est relativement simple par contre pour d'autre comme les listes ordonnée ou non je galere enormement pour matcher l'expression reguliere.

par exemple sur ce cas precis j'ai un bbcode comme celui-ci:
[liste]   
[*] un item 1   
[*] item 2   
[*] item 3   
/liste   

la il s'agit d'une liste non ordonée. dans ma fonction de transformation je doit pouvoir obtenir
<ul>   
<li> un item 1 </li>   
<li> item 2</li>   
<li> item 3</li>   
</ul>   

pour ça j'utilise la fonction preg_replace de php de cette façon
$_aMatcher = ""; // ici je dois mettre le regex qui me permet de reconaitre ma liste   
$_remplacerPar = "<ul><li> un item 1 </li><li> item 2</li><li> item 3</li></ul>";   
// ici la correspondance des mots trouvé   
$content = preg_replace($_aMatcher, $_remplacerPar, $content);   


j'en ai d'autre mais pour le moment j'essaye avec celui la!
merci d'avance a tous ce qui prendrons la peine de me filer un coup de main.
A voir également:

1 réponse

avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
25 juin 2011 à 15:56
Salut,

Tu peux récupérer le contenu entre [liste] et [./liste] (j'ai ajouté un point volontairement).

Une fois que tu as ce contenu, tu retires les [*] en début et fin de chaine avec rtrim() et ltrim().
Ensuite, tu sépares tout avec explode()
Et tu réassembles avec un boucle foreach en HTML.

Par contre, pourquoi réinventer la roue ?
Il existe des CMS comme WordPress, Dotclear, PluXML, Drupal, etc entièrement personnalisables (et fonctionnales, sans failles (ou peu, mais vite corrigées)).

De plus, pourquoi ne pas jeter un coup d'oeil à la syntaxe Wiki ?
C'est plus pratique que des balises pour écrire du contenu.

Aussi, il existe déjà plein de parseurs gratuits.
0