Wie ersetze ich einen Platzhalter in einer Zeichenkette?

8

Ich bin mir nicht sicher, wie ich diese Frage formulieren soll, aber ich gebe ein Beispiel. $ string = 'Hey, $ name. Wie geht es Ihnen?'; Wenn ich diese Zeichenfolge posten, ändert sich $ name nicht. Wie kann ich es so machen, dass ich etwas wie + name + setzen kann, so ändert sich der Name. Ich habe versucht, es zu suchen, aber ich weiß nicht, wonach ich suchen soll, also habe ich kein Glück. es ist wahrscheinlich wirklich einfach, aber ich blende nur aus. Danke

    
Alica Kindel 03.01.2012, 21:31
quelle

4 Antworten

15

Sie können Platzhalter und str_replace verwenden. Oder verwenden Sie die PHP-integrierte sprintf und verwenden Sie %s . (Und ab v4.0.6 können Sie die Reihenfolge der Argumente ändern, wenn Sie möchten).

%Vor%

Und für alle, die sich wundern, habe ich verstanden, dass es Probleme gibt, die eine Zeichenfolge templatieren, nicht die integrierte Verkettung / Analyse von PHP. Ich nehme nur an, dass diese Antwort aufrecht erhalten wird, da ich immer noch nicht 100% sicher bin, dass die Absicht dieses OPs

ist     
Brad Christie 03.01.2012, 21:32
quelle
6

Sie sollten die Zeichenfolge in doppelte Anführungszeichen setzen ( " ), wenn Sie möchten, dass Variablen erweitert werden:

%Vor%

Siehe Dokumentation .

    
Tim Cooper 03.01.2012 21:31
quelle
5

Ich war schon immer ein Fan von strtr .

%Vor%

Der andere Vorteil besteht darin, dass Sie verschiedene Platzhalterpräfixtypen definieren können. So macht es Drupal; @ gibt an, dass eine zu maskierende Zeichenfolge als sicher an eine Webseite ausgegeben werden kann (um Injektionsattacken zu vermeiden). Der Befehl format_string führt eine Schleife durch Ihre Parameter (z. B.% co_de) % und @name ) und wenn das erste Zeichen ein @weather ist, dann verwendet es @ für den Wert.

    
Nick 21.04.2016 22:30
quelle
0

Eine dritte Lösung, nicht besser oder schlechter als die oben genannten, ist die Verkettung:

echo 'Hello '. $name .'!!!';

    
Josh 03.01.2012 21:33
quelle

Tags und Links