...bin jetzt ein Stück weiter:
preg_replace("!({)(.*?)(})!","$1".str_replace(' ','_','$2')."$3",$text);
klappt noch nicht ganz.
Aber getestet mit
preg_replace("!({)(.*?)(})!","$1".str_replace(' ','_','Omi und Opi')."$3",$text);
kommt das dabei raus:
"Das {Omi_und_Opi} Text und {Omi_und_Opi} der andere!"
Also wird $2 irgendwie falsch interpretiert bzw. nicht in str_replace() rübergenommen.
Till