par
naholyr » 04 avr. 2007, 15:35
De mémoire ce que tu veux faire s'appelle un masque arrière. C'est-à-dire un masque basé sur ce qu'il a capturé un peu avant. Pour que ça marche il faut déjà... capturer
Il ne te manquait que ça : mettre des parenthèses autour de [0369CF] pour le capturer.
Au passage je ne sais plus si le "$1" marche dans les masques arrières, il faut peut-être revenir au "\1". Teste avec $1, et si ça ne marche pas essaie avec \1.
Par contre je me permets de te dire que ton remplacement est à peu près inutile, puisqu'au final il va remplacer par exemple
par
Un str_replace(array('[',']'), array('<','>'), $chaine) aurait suffit

C'est ça l'avantage du HTML ou du BBCode : on ouvre un
type de balise (ici "color"), qu'on peut éventuellement spécifier (ici en ajoutant la couleur), et à la fin on ferme le type de balise, sans avoir à mémoriser la spécificité. Si je veux changer ma couleur je n'ai qu'à changer l'attribut dans la balise ouvrante.
Ton choix a ici un double inconvénient : à l'écriture (obligé de me souvenir de la couleur que j'ai ouverte pour pouvoir la fermer), et à la modification (si je change ma couleur, je dois changer la balise ouvrante ET fermante).
De mémoire ce que tu veux faire s'appelle un masque arrière. C'est-à-dire un masque basé sur ce qu'il a capturé un peu avant. Pour que ça marche il faut déjà... capturer :)
Il ne te manquait que ça : mettre des parenthèses autour de [0369CF] pour le capturer.
Au passage je ne sais plus si le "$1" marche dans les masques arrières, il faut peut-être revenir au "\1". Teste avec $1, et si ça ne marche pas essaie avec \1.
Par contre je me permets de te dire que ton remplacement est à peu près inutile, puisqu'au final il va remplacer par exemple [code][ffffff]texte blanc[/ffffff][/code] par [code]<ffffff>texte blanc</ffffff>[/code]
Un str_replace(array('[',']'), array('<','>'), $chaine) aurait suffit :lol: C'est ça l'avantage du HTML ou du BBCode : on ouvre un [b]type[/b] de balise (ici "color"), qu'on peut éventuellement spécifier (ici en ajoutant la couleur), et à la fin on ferme le type de balise, sans avoir à mémoriser la spécificité. Si je veux changer ma couleur je n'ai qu'à changer l'attribut dans la balise ouvrante.
Ton choix a ici un double inconvénient : à l'écriture (obligé de me souvenir de la couleur que j'ai ouverte pour pouvoir la fermer), et à la modification (si je change ma couleur, je dois changer la balise ouvrante ET fermante).