2009-05-06 7 views
5

So habe ich einige PHP-Code, der wie folgt aussieht:Wie ersetze ich eine Variable in einem String mit PHP?

$message = 'Here is the result: %s'; 

I% s nur als Beispiel verwendet. Es ist im Grunde ein Platzhalter für was auch immer dort hingeht. Dann übergebe ich die Zeichenfolge an eine Funktion, und ich möchte, dass diese Funktion das% s durch den Wert ersetzt.

Was muss ich tun, um dies zu erreichen? Muss ich etwas Regex machen und preg_replace() oder etwas verwenden? oder gibt es einen einfacheren Weg?

Antwort

21

Sie können tatsächlich die sprintf Funktion verwenden, die eine formatierte Zeichenfolge zurückgibt und Ihre Variablen an die Stelle der Platzhalter setzt.
Es gibt Ihnen auch große Möglichkeiten, wie Ihre Zeichenfolge formatiert und angezeigt werden soll.

$output = sprintf("Here is the result: %s for this date %s", $result, $date); 
-3

versuchen dynamische Variablen:

$placeholder = 's'; 
str_replace("%".$placeholder,$$placeholder,$message); 

dann% s mit $ s ersetzt wird, wird die Variable

2

Sie sprintf verwenden können, die C des printf und sprintf Funktionen in sehr ähnlicher Weise funktioniert.

3

Wenn Sie %s verwenden, glaube ich, dass das gleiche Platzhalter ist, dass printf für eine Zeichenfolge verwendet. So könnten Sie tun:

$text = sprintf($message, "replacement text"); 

Denken Sie, dass zumindest funktionieren sollte ...

3
$find = array(
    '#name#', 
    '#date#' 
); 
$search = array(
    'someone\'s name', 
    date("m-d-Y") 
); 
$text_result = str_replace($find, $search, $text); 

Ich bin in der Regel dies mit für meinen Code, die $ Text von einige text/html-Dateien holen dann Machen Sie das $ text_result als die Ausgabe

Verwandte Themen