Bonjour !
Comme l'indique le sujet j'ai un petit soucis avec les expressions régulières en PHP.
Alors je vais vous expliquez ce que je souhaite faire : dans un backoffice, le client peut modifier les textes d'un site (stockés dans une base de données). Notamment, il peut mettre des listes à puces en utilisant des astérisques.
Par exemple :
... du texte ...
* item 1
* item 2
* item 3
... d'autre texte ...
Je souhaite donc convertir, à l'aide des expressions régulières, la mise en forme avec les astérisques en structure <ul> et <li>
J'ai réussi à obtenir la structure en <li> sans trop de difficultés et voici donc ce que ça donne :
<li>item 1</li><li>item 2</li><li>item 3</li>
Là où ça se corse c'est pour placer les <ul> et </ul>...
Alors s'il n'y a qu'une seule liste il suffit de mettre...
$liste = preg_replace("#\<li\>(.*)\</li\>#", "<ul>$0</ul>", $texte);
...avec $texte, le texte en brut (avec les astérisques pour les items de liste) et $liste la liste avec structure <ul> + <li>
Sauf que s'il y a plusieurs listes du genre :
... du texte ...
* item 1
* item 2
* item 3
.. d'autre texte ...
* item 4
* item 5
... encore du texte
J'obtiens :
... du texte ...
<ul><li>item 1</li><li>item 2</li><li>item 3</li> ... d'autre texte ... <li>item 4</li><li>item 5</li>
</ul> ... encore du texte ...
Voila ! Je fais ça dans le cadre d'un stage pendant lequel je dois créer le site Internet d'une entreprise donc c'est très important !
Merci de votre aide