vsprintf oder sprintf mit benannten Argumenten oder einfaches Template-Parsing in PHP

8

Ich suche nach einer Möglichkeit, benannte Argumente für sprintf oder printf zu verwenden.

Beispiel:

%Vor%

oder über vsprintf und ein assoziatives Array.

Ich habe hier einige Codierungsbeispiele gefunden

%Vor%

Ссылка

und hier

%Vor%

Ссылка

wo Leute ihre eigenen Lösungen geschrieben haben.

Aber meine Frage ist, gibt es vielleicht eine Standard-PHP-Lösung, um dies zu erreichen, oder gibt es einen anderen Weg, vielleicht mit einem einfachen PHP-Templating von PEAR, dass ich dies erreichen kann, indem ich Standard-PHP halte?

>

Danke für jede Hilfe.

    
Jeremy S. 18.04.2011, 11:11
quelle

8 Antworten

9

Soweit ich weiß, akzeptiert printf / sprintf keine assoziierten Arrays.

Es ist jedoch möglich, printf('%1$d %1$d', 1);

zu verwenden

Besser als nichts;)

    
Kamil Tomšík 18.04.2011, 11:27
quelle
11

Ich habe eine kleine Komponente genau für diesen Bedarf geschrieben. Es heißt StringTemplate . Damit können Sie bekommen, was Sie wollen mit einem Code wie folgt:

%Vor%

Ich hoffe, das kann helfen.

    
Nicolò Martini 14.08.2013 15:33
quelle
5

Dies ist von php.net

%Vor%

Beispiel:

%Vor%

Beispiel 2:

%Vor%     
RoboTamer 03.01.2012 04:04
quelle
5

Ich weiß, dass das jetzt zu lange geklärt ist, aber vielleicht ist meine Lösung einfach genug, aber nützlich für jemand anderen.

Mit dieser kleinen Funktion können Sie ein einfaches Templating-System nachahmen:

%Vor%

Benutze es so:

%Vor%

Dies würde ausgeben:

%Vor%

Vielleicht nicht für jeden und jeden Fall, aber es hat mich gerettet.

    
Armin Cifuentes 15.06.2014 04:04
quelle
4

Siehe Drupal-Implementierung

Ссылка

Es ist einfach und nicht regexp

%Vor%

Beispiel:

%Vor%     
ymakux 20.12.2015 16:34
quelle
3

Dies ist wirklich der beste Weg, um imho zu gehen. Keine kryptischen Zeichen, benutze einfach die Schlüsselnamen!

Wie von der PHP-Seite übernommen: Ссылка

%Vor%     
roberthuttinger 07.02.2013 18:24
quelle
1

Seit 5.3 wegen des use -Schlüsselwortes:

Diese Funktion unterstützt die Formatierung {{var}} oder {{dict.key}}. Sie können die {{}} in {} usw. ändern, damit sie Ihnen gefällt.

%Vor%

Beispiel:

%Vor%

Ausgabe:

Das ist Jim, ich bin 20 Jahre alt, ich habe eine Katze namens Huang.

    
nowheretoseek 12.02.2018 05:11
quelle
0

Einfach genug

%Vor%     
兜甲児 17.10.2017 09:25
quelle