2012-04-13 6 views
0

Ich versuche, mehrere Variablen in einem Text zu ersetzen. I Zum Beispiel habe diesen Text:PHP preg_repalce Replace% var% mit Text

This is an example text , my variables are: 
%name% 
%frontname% 
%lastname% 
%email% 

Nein ich jede Variable ersetzt werden soll, die zwischen dem%% Zeichen mit {$ variable} ist.

So sieht meine Ausgabe wie folgt:

This is an example text , my variables are: 
{$name} 
{$frontname} 
{$lastname} 
{$email} 

Das Muster, das ich dies zu nutzen versuche ist:

$textResponder = preg_replace('#\%[^\%]+\%#', '{$$1}', $text); 

Aber das nicht funktioniert, wie ich diese erhalten als Ausgabe: {$} {$} {$}. Does Weiß jemand, was das richtige Muster wäre?

Vielen Dank im Voraus

Antwort

0
$var = "Hello, %test% World %another test%!"; 
echo preg_replace('#%(.*?)%#', '{\$$1}', $var); 

Test here

+0

Warum bist du eskortieren g die '%' Zeichen? –

+0

Vielen Dank, das funktioniert super. –

+0

aktualisiert den Code ohne die Flucht, das Ergebnis ändert sich nicht, macht es nur ein bisschen sauberer. –

0

preg_replace('/%(.*?)%/', '{\$$1}', $text); 
0

@Gert Van de Ven Sie müssen versuchen die Dollar besondere Bedeutung zu entkommen:

$var = "Hello, %test% World!"; 
echo preg_replace('#\%(.*?)\%#', '{\$$1}', $var);