Christian Kruse: der rechte Weg zu preg_replace.

Beitrag lesen

Hallo Sven,

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

Sicher. Man kann beispielsweise eine Schleife
machen. Nur wirst du in keinem Fall drum
herumkommen, für jedes Vorkommen des Strings
eine Ersetzungsfunktion aufzurufen.

Er wird ;)

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

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

Öhm, irgendwie klingt mir das auch ziemlich arg
unmöglich.

Ist es nicht.

Die Referenz auf \1 ist Bestandteil des
regulären Ausdrucks

korrekt.

sie als Arrayindex zu verwenden, wird vermutlich
niemals gehen können.

Es geht mit dem e-Modifier:

$text = preg_replace('/###([^#]+)###/e',"$var['\1']",$text);

Alternativ kann er auch die $[1-9]-Variablen
nutzen:

$text = preg_replace('/###([^#]+)###/',$var[$1],$text);

Gruesse,
 CK

--
Beware Evildoers for my deed is done and every little damsel in distress will be shelted!