PHP
Referenzliste
sprintf
String-Funktionen
Befehl:
string sprintf ( string $format [, mixed $args [, mixed $... ]] )
Parameter-Liste:
Beschreibung | |
---|---|
Der Formatierungs-String wird aus null oder mehreren Anweisungen gebildet: Gewöhnliche Zeichen (außer %), 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:
| |
args | Weitere Eingaben |
Rückgabewerte:
Gibt eine an Hand des Formatierungs-Strings format gebildete Zeichenkette zurück.
Beschreibung:
Gibt eine an Hand des Formatierungs-Strings
format
gebildete Zeichenkette zurück. Aktiv in Version:
(PHP 4, PHP 5, PHP 7)
Siehe auch:
sprintf() - Beispiel:
Eingabe:
<?php $anzahl = 5; $ort = 'Baum'; $format = 'Es sind %d Affen auf dem %s'; printf($format, $anzahl, $ort); ?>
Dies wird "Es sind 5 Affen auf dem Baum" 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:
<?php $format = 'Der %s enthält %d Affen'; printf($format, $anzahl, $ort); ?>
Nun haben wir ein Problem. Die Reihenfolge der Platzhalter im Formatstrings entspricht nicht mehr der Reihenfolge der Argumente im Code. Wir würden gern den Code belassen wie er ist und einfach im Formatstring angeben, welche Argumenten welchen Platzhaltern entsprechen. Wir würden dann den Formatstring wie folgt schreiben:
<?php $format = 'Der %2$s enthält %1$d Affen'; printf($format, $anzahl, $ort); ?>
Ein weiterer Vorteil ist, dass wir nun die Platzhalter wiederholen können, ohne mehr Argumente im Code hinzufügen zu müssen. Zum Beispiel:
<?php $format = 'Der %2$s enthält %1$d Affen. %1$d Affen sind ziemlich viel für einen %2$s.'; printf($format, $anzahl, $ort); ?>
Wenn Argumenttausch verwendet wird muss die <em>n$</em> <em class="emphasis">Positionsangabe</em> direkt nach dem Prozentzeichen (<em>%</em>) folgen, vor jeglichen anderen Angaben, wie im Beispiel unten zu sehen ist.
<?php $format= 'Der %2$s enthält %1$04d Affen'; printf($format, $anzahl, $ort); ?>
Der Baum enthält 0005 Affen.
Beschreibung:
Beschreibung | |
---|---|
4.0.6 | Unterstützung für Argument numbering/swapping hinzugefügt. |
sprintf() - Beispiel 2:
Eingabe:
<?php $n = 43951789; $u = -43951789; $c = 65; // ASCII 65 is 'A' // Beachten Sie das doppelte %%, dies gibt ein '%'-Zeichen aus printf("%%b = '%b'\n", $n); // Binärdarstellung printf("%%c = '%c'\n", $c); // print the ascii character, same as chr() function printf("%%d = '%d'\n", $n); // Standard-Integerdarstellung printf("%%e = '%e'\n", $n); // Wissenschaftliche Notation printf("%%u = '%u'\n", $n); // vorzeichenlose Integerdarstellung einer positiven Zahl printf("%%u = '%u'\n", $u); // vorzeichenlose Integerdarstellung einer negativen Zahl printf("%%f = '%f'\n", $n); // Fliesskommazahldarstellung printf("%%o = '%o'\n", $n); // Oktaldarstellung printf("%%s = '%s'\n", $n); // Stringdarstellung printf("%%x = '%x'\n", $n); // Hexadezimaldarstellung (Kleinbuchstaben) printf("%%X = '%X'\n", $n); // Hexadezimaldarstellung (Grossbuchstaben) printf("%%+d = '%+d'\n", $n); // Vorzeichenangabe für positive Integerzahlen printf("%%+d = '%+d'\n", $u); // Vorzeichenangabe für negative Integerzahlen ?>
Ausgabe:
%b = '10100111101010011010101101'
%c = 'A'
%d = '43951789'
%e = '4.39518e+7'
%u = '43951789'
%u = '4251015507'
%f = '43951789.000000'
%o = '247523255'
%s = '43951789'
%x = '29ea6ad'
%X = '29EA6AD'
%+d = '+43951789'
%+d = '-43951789'
%c = 'A'
%d = '43951789'
%e = '4.39518e+7'
%u = '43951789'
%u = '4251015507'
%f = '43951789.000000'
%o = '247523255'
%s = '43951789'
%x = '29ea6ad'
%X = '29EA6AD'
%+d = '+43951789'
%+d = '-43951789'
Beschreibung:
Mit sprintf() kann man Parameter (args) nach einem bestimmten Muster (format) formatieren lassen. Im Gegensatz zu printf() wird der String nicht sofort ausgegeben, sondern kann in einer Variablen gespeichert werden.
Der Musterstring format enth�lt Platzhalter, die mit einem Prozentzeichen eingeleitet werden. Die Funktion ersetzt diese Platzhalter durch die entsprechend formatierten Werte aus den n�chsten Parametern. Die Platzhalter bestehen aus folgenden Elementen:
Ein optionales F�llzeichen, welches den String nach rechts auff�llt. Dabei kann das F�llzeichen eine Null (0) oder ein Leerzeichen sein. Andere F�llzeichen k�nnen durch Voranstellen eines einfachen Hochkommas (') definiert werden. Eine optionale Angabe der Textausrichtung. Voreingestellt ist rechts, bei links muss ein Bindestrich (-) angegeben werden. Ein optionaler Wert f�r die L�ngenangabe. Ein optionaler Wert f�r die Anzahl der Nachkommastellen - wird allerdings nur beim Typ "double" unterst�tzt.
Der Musterstring format enth�lt Platzhalter, die mit einem Prozentzeichen eingeleitet werden. Die Funktion ersetzt diese Platzhalter durch die entsprechend formatierten Werte aus den n�chsten Parametern. Die Platzhalter bestehen aus folgenden Elementen:
Ein optionales F�llzeichen, welches den String nach rechts auff�llt. Dabei kann das F�llzeichen eine Null (0) oder ein Leerzeichen sein. Andere F�llzeichen k�nnen durch Voranstellen eines einfachen Hochkommas (') definiert werden. Eine optionale Angabe der Textausrichtung. Voreingestellt ist rechts, bei links muss ein Bindestrich (-) angegeben werden. Ein optionaler Wert f�r die L�ngenangabe. Ein optionaler Wert f�r die Anzahl der Nachkommastellen - wird allerdings nur beim Typ "double" unterst�tzt.
Beschreibung:
Beschreibung | |
---|---|
4.0.6 | Unterstützung für Argument numbering/swapping hinzugefügt. |
sprintf() - Beispiel 3: Stringformation
Eingabe:
<?php $s = 'monkey'; $t = 'many monkeys'; printf("[%s]\n", $s); // normale rechtsbündige Ausgabe printf("[%10s]\n", $s); // rechtsbündige Ausgabe, mit Leerzeichen aufgefüllt printf("[%-10s]\n", $s); // linksbündige Ausgabe, mit Leerzeichen aufgefüllt printf("[%010s]\n", $s); // auffüllen mit Nullen funktioniert auch bei Strings printf("[%'#10s]\n", $s); // Verwendung des benutzerdefinierten Auffüllzeichens '#' printf("[%10.10s]\n", $t); // linksbündige Ausgabe mit abschneiden überflüssiger // Buchstaben nach der zehnten Stelle ?>
Ausgabe:
[monkey]
[ monkey]
[monkey ]
[0000monkey]
[####monkey]
[many monke]
[ monkey]
[monkey ]
[0000monkey]
[####monkey]
[many monke]
Beschreibung:
Beschreibung | |
---|---|
4.0.6 | Unterstützung für Argument numbering/swapping hinzugefügt. |
sprintf() - Beispiel 4: Mit Nullen aufgefüllte Integer
Eingabe:
<?php $isodate = sprintf("%04d-%02d-%02d", $year, $month, $day); ?>
Beschreibung:
Beschreibung | |
---|---|
4.0.6 | Unterstützung für Argument numbering/swapping hinzugefügt. |
sprintf() - Beispiel 5: Wärungsformatierung
Eingabe:
<?php $money1 = 68.75; $money2 = 54.35; $money = $money1 + $money2; // echo $money gibt "123.1" aus $formatted = sprintf("%01.2f", $money); // echo $formatted gibt "123.10" aus ?>
Beschreibung:
Beschreibung | |
---|---|
4.0.6 | Unterstützung für Argument numbering/swapping hinzugefügt. |
sprintf() - Beispiel 6: Wissenschaftliche Notation
Eingabe:
<?php $number = 362525200; echo sprintf("%.3e", $number); // Ausgabe 3.625e+8 ?>
Beschreibung:
Beschreibung | |
---|---|
4.0.6 | Unterstützung für Argument numbering/swapping hinzugefügt. |
String-Funktionen