Guten Tag
Ich habe einen Array:
$my['baum'] = 'tanne';
$my['haus'] = 'hochhaus';
$my['tier'] = 'ente';
Und ich habe einen String:
$str = 'Auf der {baum} hinter '
.'dem {haus} sitzt '
.'eine {tier}.';
echo preg_replace("#{(.+?)}#se", '$my['$1'])', $str);
Liefert mir:
"Auf der Tanne hinter dem hochaus sitzt eine ente."
Soweit so gut. Nun möchte ich folgendes:
Ich habe erneut einen String:
$str = 'Hier ein {function:my_func({baum})} wald.';
Und ich habe eine Funktion:
my_func($string)
{
return 'AAA'.$string.'BBB';
}
preg_replace müsste nun so gebaut werden, dass:
"Hier ein AAAtanneBBB wald."
raus kommt.
Es gelingt mir, eine Funktion zu übergeben und diese ausführen zu lassen, doch leider schaffe ich nicht, das Argument "tanne" der Funktion zu geben. Man müsste quasi das Argument der Funktion austauschen und erst dann die Funktion ausführen lassen.
Wie muss ich:
preg_replace("#{function:(.+?)}#se", '$1', $str);
verändern, damit my_func('tanne') ausgeführt wird? Ist das überhaupt möglich?
Besten Dank!
Schorsch