Je suis entrein de finir mon nouveau système de formatage de texte et je viens de m'appercevoir d'un détail génant.
J'utilise la fonction preg_replace() comme suis :
preg_replace($regexp,$remplace,$texte);
avec par exemple :
$regexp = "/:[bB].*)(.*):\/[bB]";
$remplace="<B>\1\2</B>";
Avec
$texte="pas gras:b:grasbas gras";
tout ce passe bien
Mais avec
$texte="pas gras:b:grasbas graspas gras:b:grasbas graspas gras:b:grasbas gras";
j'obtiens :
pas gras<B>grasbas graspas gras:b:grasbas graspas gras:b:gras</B>pas gras
Bref, là, ca merde, il me remplace les balises extérieure mais pas celle qui sont situé au milieu. Est ce que quelqu'un peut m'indiquer une regexp ou une autre fonction utilisant les regexp qui réagirait comme je le souhaiterais?
PS1 : Le nombre de ":b:" "b:" est variable.
PS2 : pour le moment, l'ensemble des regexp est passé sous forme de tableau, là j'ai fait que mettre un exemple réduit au minimum.
Merci d'avance pour ceux qui me doneront une solution à ce problème.
Message édité par omega200 le 08-12-2002 à 21:12:06
omega200
Profil : Jeune recrue
Posté le 08-12-2002 à 21:12:19
C'est bon, on m'a donné la réponse.
Il falait que je finisses la regexp par "/U" et non par un "/" tout seul.
Grand merci à Olivier (le créateur de FPDF) pour sa solution et la rapidité de sa réponse.
aoko_6o6
Le poulet de la persécution Profil : Membre
Posté le 08-12-2002 à 21:16:18
Je reprends juste ton post pour un pb de smiley
J'utilise la fonction preg_replace() comme suis :
preg_replace($regexp,$remplace,$texte);
pas gras<B>gras:/b:pas graspas gras:b:gras:/b:pas graspas gras:b:gras</B>pas gras
Message édité par aoko_6o6 le 08-12-2002 à 21:17:40
Hinou
Possède blague a 2 balle a +10 Profil : Membre
Posté le 09-12-2002 à 11:25:35
C'est clair que c'est plus clair
---------------
Administer c'est bien développer c'est mieux
Créateur de l'association des "elfes de la forest" (balançage de troll en tous genre)
Créateur de l'anti-cs team (cs c'est un mod pas un jeux )