Jens Irrgang: der rechte Weg zu preg_replace.

Beitrag lesen

Hallo,

ich arbeite mich in PHP ein. Und dabei bin ich auf ein kleines Problem gestossen, welches mir so ein bisschen den Nachmittag verleidet.

Ich habe einen Array $erstellen. In diesem befinden sich mehrere HTML-Fragmente, die ich zusammen bringen möchte. Geht auch ganz einfach mit dem Code-Schnipsel welches ich hier eingefügt habe.

$ausgabe = preg_replace("/###metas###\n/", $erstellen['metas'], $erstellen['haupt']);
$ausgabe = preg_replace("/###titel###\n/", $erstellen['titel'], $ausgabe);
$ausgabe = preg_replace("/###menu###\n/", $erstellen['menu'], $ausgabe);
$ausgabe = preg_replace("/###allelinks###\n/", $erstellen['allelinks'], $ausgabe);
$ausgabe = preg_replace("/###labels###\n/", $erstellen['labels'], $ausgabe);

Das sollte aber doch auch einfacher und vor allem flexibler gehen?

Mein bisheriger, nicht funktionierender, Lösungsansatz ist dieser:

$ausgabe = preg_replace("/###(.*)###\n/", $erstellen['\1'], $erstellen['haupt']);

Ob nun $erstellen['\1'] oder $erstellen[\1], PHP gibt mir immer diesen Fehler aus: Notice: "Undefined index: \1 in D:\home\www\web5\html\index.php on line 26"

Die Archiv-Suche hat mich nicht weiter gebracht.
PHP-Version 4.3.4

Danke im voraus

Jens