expression regulière - PHP - Programmation
Marsh Posté le 25-03-2003 à 17:31:50
J'ai pas envie de me plonger dans tes expressions régulières, mais 3 remarques :
- il doit manquer un "color=" dans ton premier encadré
- l'espace avant le "#" peut être enlevé dans l'expr reg
- le chgt pour la balise de fin peut se faire lors d'un autre appel à preg_replace (qui ne se chargera que du changement de la balise de fin)
Y'a des explications sur commentcamarche.net
Marsh Posté le 25-03-2003 à 19:46:42
Quel interêt ?
Si ça te fait plaisir tu feras une fonction perso qui fera les 2 opérations à la suite... ça te donnera l'impression de faire les 2 en même temps
Tu trouves pas que c'est déjà assez compliqué pour avoir envie de faire tout en même temps ?
Marsh Posté le 25-03-2003 à 22:10:55
$body = preg_replace("/\[([\#a-z0-9]+?)\](.+?)\[\/color\]/si", "<span style=\"color: $1\">\\2</span>", $body);
Marsh Posté le 26-03-2003 à 12:24:29
youp merci
tu pourrais me dire ce que font exactement $1 et \\2 ? je vois ce qu'ils font mais c'est pas très clair
Si tu pouvais expliquer chaque signe
Marsh Posté le 26-03-2003 à 12:50:56
alors
$1 est en fait ce que le php trouve dans la premiere parenthese,
et \\2 ce que le php trouve dans la 2°.
$1 est une facon de dire \\1
sachant que $1 ne marche que sur php 4.x et plus, il vaut mieux utiliser \\1 et \\2, et ainsi de suite
Marsh Posté le 26-03-2003 à 13:02:09
ok merci, c'était la différence qui faisait que c'était pas clair
merci encore
Marsh Posté le 25-03-2003 à 16:41:35
youp,
j'essaye de transformer
[#225566]zearioazyriuzaye[/color]
en
<span style="color:#225566">zearioazyriuzaye</span>
en faisant
résultat =>
<span style="color: #225566">zearioazyriuzaye[/color]
j'arrive pas à transformer la balise de fin
si quelqu'un peut m'aider...
et si quelqu'un a un bon tutorial, ca m'intéresse aussi
Message édité par art_dupond le 25-03-2003 à 17:45:33
---------------
oui oui