par
aetapu » 05 févr. 2011, 00:31
oui pourquoi ?
en fait je fait un moteur de template maison (pas besoin de beaucoup de fonction donc c'est plus simple de le faire moi même que d'en utiliser un tout fait, et puis, ça me fait la main)
le script lit le text, s'il detecte un <if cond="X">, il le remplace par "if (cond) {".
Le pattern initial semble tout simple : il suffit de chopper tous les caractères entre cond=" et ">, sauf si on met un deuxième if : <if cond="Y"> à la suite, ce pattern renvoie :
X"><if cond="Y
.
Je dois donc écrire une regex qui selectionne X, X qui est une chaine ne contenant pas > (comme ça je m'arrête au premier, au lieu d'aller jusqu'à celui du second if).
Le problème c'est que les variables dans X sont sous forme $this->var, je dois donc accepter le > dans ce cas là.
Une solution aurait été de refuser les chaines contenant : "> mais j'ai une balise <else> qui n'a pas de ".
Merci de l'attention que tu portes à mon message
