Bonjour,
J'utilise un mini système de méta-code pour un templating.
Voici un exemple de méta-code : {site:color:bg} ou encore {page:title}
Pour remplacer tout cela par ce que je souhaite j'ai un petit regex qui utilise preg_replace avec le flag e afin de remplacer tout cela par la valeur d'une variable créée plus haut.
Exemple {site:title} => $site['title']
Donc un preg_replace('/.../e', '$$1[$2]', $template); fonctionne très bien quand j'ai un méta-code du style : {site:title}. Le problème se pose justement quand le dernier groupe ($3) n'existe pas, puisqu'il est facultatif.
Le but recherché c'est de faire : si le groupe $3 ({site:color:bg}) existe il me cherche la variable $$1[$2][$3] mais s'il y a uniquement deux groupes ({site:title}) il me fait ceci : $$1[$2].
J'ai pensé en faisant un ($3) ? $$1[$2][$3] : $$1[$2] mais ça fonctionne pas, puisque si le groupe $3 n'existe tout simplement pas, la variable n'existe pas...
Si quelqu'un à déjà eu le problème et qu'il a la solution je suis preneur :-D
Merci d'avance,
Bonne soirée.
Partager