Archives FluxBB.fr

Les archives de FluxBB.fr

Vous n'êtes pas identifié(e).

#1 27-12-2010 15:38:16

PascL
Membre

Expressions régulières

Bonjour,

Je suis en train de faire une modif de bbcode dans le fichier parser.php pour ajouter une balise [note][/note] qui crée une note en bas de page (ou en bas de chaque post).

'#\[note\]([^\[]*?)\[/note\]#e'

Chaque fois que je trouve cette balise, j'incrémente un entier.

J'ai souhaité qu'il y ait également un [note=commentaire quelconque]ma note[/note].
J'ai donc rajouté une seconde ligne:

'#\[note=([^\[]*?)\]([^\[]*?)\[/note\]#e'

Le problème qui me préoccupe vient lorsque j'inclus dans un même message des note et note=.
Par exemple:

bouh [note]blabla1[/note] blibli [note=bidule]blabla2[/note] blublu [note]blabla3[/note] bleble [note=machin]blabla4[/note]

va donner dans le message:

bouh (#note1) blibli (#note3) blublu (#note2) bleble (#note4)
----------------------

note1 : blabla1
note2 : blabla3
note3 : (bidule) blabla2
note4 : (machin) blabla4

Tous les [note] sont parsés avant tous les [note=] du fait des 2 lignes dans le parser et apparaissent donc avec des numéros inférieurs aux note=.

Donc, ma question, pour ne plus avoir ce désordre, c'est comment compiler les 2 lignes ajoutés au parser en une seule ?
Ou si quelqu'un a une autre solution, je suis preneur aussi smile
Merci.

Hors ligne

Pied de page des forums