Hallo zusammen..
Ich bin gearade dabei in meinen Templateparser eine Template-If funktion einzubauen. Ist eigendlich noch relativ schwierig weil ich kein Regex kann, werde es aber bald lernen.
Konkret sieht mein Problem so aus:
Die Ausgabe dazu ist:
Nun zum Problem:
Im Array $arr werden nur die ELSEIF informationen der ersten ELSEIF gespeichert. Ich möchte aber dass die Informationen aller 4 ELSEIF's gespeichert werden. Also schlussendlich sollte es so aussehen:
Der Code im Regex Überschneidet sich ja ein bisschen, könnte dass der Fehler sein? Woran könnte es sonst liegen?
Mfg, Andy
Ich bin gearade dabei in meinen Templateparser eine Template-If funktion einzubauen. Ist eigendlich noch relativ schwierig weil ich kein Regex kann, werde es aber bald lernen.
Konkret sieht mein Problem so aus:
PHP Code:
<?php
$tpl = 'Der status ist 1!
{ELSEIF status == 2}
Der Status ist 2!!
{ELSEIF status == 3}
Der Status ist 3!
{ELSEIF status == 4}
Der Status ist 4!!
{ELSE}
Der Status ist werder 1 noch 2 oder 3!';
preg_match_all('!\{ELSEIF (.*)\}(.*)\{ELSEIF !isU', $tpl, $arr);
var_dump($arr);
?>
Code:
array(3) {
[0]=>
array(1) {
[0]=>
string(48) "{ELSEIF status == 2}
Der Status ist 2!!
{ELSEIF "
}
[1]=>
array(1) {
[0]=>
string(11) "status == 2"
}
[2]=>
array(1) {
[0]=>
string(20) "
Der Status ist 2!!
"
}
}
Im Array $arr werden nur die ELSEIF informationen der ersten ELSEIF gespeichert. Ich möchte aber dass die Informationen aller 4 ELSEIF's gespeichert werden. Also schlussendlich sollte es so aussehen:
Code:
array(3) {
[0]=>
array(1) {
[0]=>
string(48) "{ELSEIF status == 2}
Der Status ist 2!!
{ELSEIF "
}
[1]=>
string(xx) "{ELSEIF status == 3}
Der Status ist 3!
{ELSEIF "
}
[2]=>
string(xx) "{ELSEIF status == 4}
Der Status ist 4!!
{ELSEIF "
}
[1]=>
array(1) {
[0]=>
string(11) "status == 2"
[1]=>
string(11) "status == 3"
[2]=>
string(11) "status == 4"
}
[2]=>
array(1) {
[0]=>
string(20) "
Der Status ist 2!!
"
[1]=>
string(20) "
Der Status ist 3!
"
[2]=>
string(20) "
Der Status ist 4!!
"
}
}
Mfg, Andy
Comment