en
<ul><li>bla1</li>
<li>bla2</li>
<li>bla3</li>
<li>bla4</li></ul>
mais avec X bla, je sais pas comment faire....
jai commencé à écrire ça:
'/\[list\] ([*](.*?))+ \[\/list\]/is'
peut être que cest pas possible, et quil faut remplacer [list][*]bla1
et [*]blax[*] et [*]dernierbla[/list] séparément, ou un truc comme
ça...
merci beaucoup!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
Bonjour,
Le 01/07/2009 13:04, samuel a écrit :
j'aimerais transformer
[list] [*]bla1 [*]bla2 [*]bla3 [*]bla4 [/list]
en <ul><li>bla1</li> <li>bla2</li> <li>bla3</li> <li>bla4</li></ul> mais avec X bla, je sais pas comment faire....
Pour ce genre de choses, l'idéal serait d'écrire d'abord un « parser » qui lit le format d'origine et le stocke sous la forme d'un arbre, puis il n'y a rien de plus simple que de générer le format de destination à partir du format structuré interne. Mais bien sûr ça ne se fait pas à coups de preg_replace().
jai commencé à écrire ça:
'/[list] ([*](.*?))+ [/list]/is'
Bon, mettons qu'on en reste aux preg_replace(). Il y a quand même deux problèmes.
Le premier est syntaxique : /[list]s*([*](.*?))+s*[/list]/
Le second est que tu ne peux pas remplacer à la fois les [list] en <ul> et les [*] en <li>, il faut le faire en plusieurs étapes.
Attention, je n'ai rien testé, alors c'est sans garantie, d'autant que j'ai essayé de respecter ton utilisation des blancs et des sauts de ligne (ce qui complique).
Je fais suivre vers fr.comp.lang.regexp pour d'éventuels compléments.
-- Olivier Miakinen
Bonjour,
Le 01/07/2009 13:04, samuel a écrit :
j'aimerais transformer
[list]
[*]bla1
[*]bla2
[*]bla3
[*]bla4
[/list]
en
<ul><li>bla1</li>
<li>bla2</li>
<li>bla3</li>
<li>bla4</li></ul>
mais avec X bla, je sais pas comment faire....
Pour ce genre de choses, l'idéal serait d'écrire d'abord un « parser »
qui lit le format d'origine et le stocke sous la forme d'un arbre, puis
il n'y a rien de plus simple que de générer le format de destination à
partir du format structuré interne. Mais bien sûr ça ne se fait pas à
coups de preg_replace().
jai commencé à écrire ça:
'/[list] ([*](.*?))+ [/list]/is'
Bon, mettons qu'on en reste aux preg_replace(). Il y a quand même deux
problèmes.
Le premier est syntaxique :
/[list]s*([*](.*?))+s*[/list]/
Le second est que tu ne peux pas remplacer à la fois les [list] en <ul>
et les [*] en <li>, il faut le faire en plusieurs étapes.
Attention, je n'ai rien testé, alors c'est sans garantie, d'autant que
j'ai essayé de respecter ton utilisation des blancs et des sauts de
ligne (ce qui complique).
Je fais suivre vers fr.comp.lang.regexp pour d'éventuels compléments.
en <ul><li>bla1</li> <li>bla2</li> <li>bla3</li> <li>bla4</li></ul> mais avec X bla, je sais pas comment faire....
Pour ce genre de choses, l'idéal serait d'écrire d'abord un « parser » qui lit le format d'origine et le stocke sous la forme d'un arbre, puis il n'y a rien de plus simple que de générer le format de destination à partir du format structuré interne. Mais bien sûr ça ne se fait pas à coups de preg_replace().
jai commencé à écrire ça:
'/[list] ([*](.*?))+ [/list]/is'
Bon, mettons qu'on en reste aux preg_replace(). Il y a quand même deux problèmes.
Le premier est syntaxique : /[list]s*([*](.*?))+s*[/list]/
Le second est que tu ne peux pas remplacer à la fois les [list] en <ul> et les [*] en <li>, il faut le faire en plusieurs étapes.
Attention, je n'ai rien testé, alors c'est sans garantie, d'autant que j'ai essayé de respecter ton utilisation des blancs et des sauts de ligne (ce qui complique).
Je fais suivre vers fr.comp.lang.regexp pour d'éventuels compléments.