Hallo.
Ich habe für ein Projekt eine Template-Engine geschrieben. Die Templates sehen in etwa so aus...
<body>
{varibale0}
{START bereich1}
{varibale1}
<b>{varibale2}</b>
{END bereich1}
</body>
Jetzt möchte ich die Bereiche und Variablen in einen Array einlesen, wobei jede Variable untergeordnet zu ihrem Bereich ist (wird rekursiv gemacht). In etwa so:
Array
(
[bereich1] => Array
(
[0] => variable1
[1] => variable2
)
[0] => variable0
)
Die Bereiche lese ich so aus, das funktioniert auch:
preg_match_all ("/{START (.+)}(.*){END \1}/Us", $template, $areas, PREG_SET_ORDER);
Jetzt will ich aber eben noch zu dem Bereich die entsprechenden Variablen. Da ist das Porblem, weil der immer alle Variablen einliest. Ich hab es so versucht, funktionierte aber nicht:
preg_match_all ("/({?!START (.+)}.*){(?!START |END )(.+)}(?!.*{END \1})/Us", $template, $vars);
Da entsteht in etwa sowas:
Array
(
[bereich1] => Array
(
)
)
Hat jemand die Lösung für dieses Problem?
Gruß, Andü