Beschreibung:
string sprintf
( string $format
[, mixed $args
] )
Gibt einen an Hand des Formatierungs-Strings
format
gebildeten String zurück.
Der Formatierungs-String wird aus keiner oder mehreren Anweisungen
gebildet: Gewöhnliche Zeichen (ausser %), die
direkt in das Ergebnis übertragen werden und
Umsetzungs-Anweisungen. Jede dieser
Anweisungen holt sich als Resultat ihre eigenen Parameter. Diese
Anweisungen gelten sowohl für die sprintf()-
als auch für die printf()-Funktion.
Jede der Formatierugs-Anweisungen besteht aus einem
Prozent-Zeichen (%), gefolgt von einem oder mehrereren
der folgenden Elemente:
-
Einem optionalen Füll-Zeichen, das den
String bis rechts auffüllt. Dies kann ein Leerzeichen oder eine
0 (das Null-Zeichen) sein. Standardmäßig wird
mit dem Leerzeichen gefüllt. Andere Füllzeichen können durch
Voranstellen eines einfachen Anführungszeichens (')
definiert werden. Beachten Sie die nachstehenden Beispiele.
-
Einer optionalen Angabe der Ausrichtung,
ob die Ausgabe nach links oder nach rechts (default) ausgerichtet
werden soll. Standardmäßig ist die Ausrichtung rechtsbündig.
Um den Text linksbündig auszurichten müssen Sie das Zeichen
- angeben.
-
Einer optionalen Zahl für die Längen-Angabe,
welche die mindestens zurückzugebende Anzahl Zeichen spezifiziert.
-
Einem optionalen Wert für die Anzahl der auszugebenden
Dezimalstellen für Fließkommazahlen. Dieser
Wert hat nur Einfluss auf Werte vom Typ float (eine
weitere hilfreiche Funktion zur Formatierung von Zahlen ist
number_format()).
-
Einer Typ-Angabe welche den Typ enthält,
als der das Argument angesehen werden soll. Mögliche Angaben
sind:
-
% - ein Prozent-Zeichen ("%"). Es ist kein
Argument erforderlich.
-
b - das Argument wird als Integer
angesehen und als Binär-Wert ausgegeben.
-
c - das Argument wird als Integer
angesehen und das entsprechende ASCII-Zeichen wird
ausgegeben.
-
d - das Argument wird als Integer
angesehen und ein Dezimalwert (signed) ausgegeben.
-
u - das Argument wird als Integer
angesehen und ein Dezimalwert (unsigned) ausgegeben.
-
f - das Argument wird als float
angesehen und eine Fließkomma-Zahl ausgegeben.
-
o - das Argument wird als Integer
angesehen und und als Oktalzahl ausgegeben.
-
s - das Argument wird als String angesehen
und auch als solcher ausgegeben.
-
x - das Argument wird als Integer
angesehen und als Hexadezimal-Wert ausgegeben (mit
Kleinbuchstaben).
-
X - das Argument wird als Integer
angesehen und als Hexadezimal-Wert ausgegeben (mit
Großbuchstaben).
Seit PHP 4.0.6 unterstützt der Formatstring auch Argumente zu
numerieren/tauschen. Hier ein Beispiel:
Example#1 Argumente tauschen
$format = "There are %d monkeys in the %s";
printf($format,$num,$location);
Dies könnte "There are 5 monkeys in the tree" ausgeben. Aber nehmen
wir einmal an, dass wir den Formatstring in einer separaten Datei
erstellen, da wir ihn internationalisieren wollen, und deshalb wie
folgt umschreiben:
Example#2 Argumente tauschen
$format = "The %s contains %d monkeys";
printf($format,$num,$location);
Nun haben wir ein Problem. Die Reihenfolge der Platzhalter des
Formatstrings entspricht nicht mehr der Reihenfolge der Argumente im
Code. Wir würden gerne den Code belassen wie er ist, und einfach im
Formatstring angeben, welchen Argumenten die Platzhalter entsprechen.
Wir würden dann den Formatstring wie folt schreiben:
Example#3 Argumente tauschen
$format = "The %2\$s contains %1\$d monkeys";
printf($format,$num,$location);
Ein weiterer Vorteil ist, dass wir nun die Platzhalter wiederholen
können, ohne mehr Argumente im Code hinzufügen zu müssen. Zum Beispiel:
Example#4 Argumente tauschen
$format = "The %2\$s contains %1\$d monkeys.
That's a nice %2\$s full of %1\$d monkeys.";
printf($format, $num, $location);
Siehe auch: printf(),
sscanf(), fscanf() und
number_format().