hallo,
ich habe das Problem assoziative Arrays mit preg_replace zu benutzen:
Daher z.B.:
$lang= array("house"=>"Haus", "garden"=>"Garten");
$text = "Das [lang=house] mit [lang=garden]";
$text = preg_replace('#\[lang=(.*)\]#Uis', $lang['\1'], $text);
echo $text;
Das Ergebnis ist "Das mit", d.h. alles was dem Muster entspricht verschwindet ansttat ersetzt zu werden. Ich habe schon mir alle erdenklichen Möglichkeiten ausprobiert von '$lang[\1]', "$lang[\1]" bis "$lang['\1'] etc.. Am ehesten richtig scheint "$lang[\1]" als Replace zu sein, da wenn ich z.B. statisch "$lang[garden]" es richtig ersetzt wird (aber halt natürlich mit dem Ergebnis "Das Garten mit Garten"). Kennt da jemand die Lösung? Habe bisher nicht im Web gefunden dazu. Vielleicht liegt es an meinem Pattern, aber da habe ich auch schon jede Menge Varianten ausprobiert!
Danke für eure Hilfe!