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
Kommentar