(PHP 4, PHP 5)
sprintf — Gibt einen formatierten String zurück
Gibt eine an Hand des Formatierungs-Strings format
gebildete Zeichenkette zurück.
format
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:
Eine Typangabe, welche den Typ enthält, als der das jeweils übergebene Argument angesehen werden soll. Mögliche Angaben sind:
Der Formatstring unterstützt nummerierte Argumente und kann daher auch ihre Position bestimmen (argument numbering/swapping). Hier ein Beispiel:
Beispiel #1 Argumente tauschen
<?php
$anzahl = 5;
$ort = 'Baum';
$format = 'Es sind %d Affen auf dem %s';
printf($format, $anzahl, $ort);
?>
Beispiel #2 Argumente tauschen
<?php
$format = 'Der %s enthält %d Affen';
printf($format, $anzahl, $ort);
?>
Beispiel #3 Argumente tauschen
<?php
$format = 'Der %2$s enthält %1$d Affen';
printf($format, $anzahl, $ort);
?>
Beispiel #4 Argumente tauschen
<?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);
?>
Beispiel #5 Positionstausch mit weiteren Spezifikatoren
<?php
$format= 'Der %2$s enthält %1$04d Affen';
printf($format, $anzahl, $ort);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Der Baum enthält 0005 Affen.
args
...
Gibt eine an Hand des Formatierungs-Strings format
gebildete Zeichenkette zurück.
Version | Beschreibung |
---|---|
4.0.6 | Unterstützung für Argument numbering/swapping hinzugefügt. |
Beispiel #6 printf(): Verschiedene Beispiele
<?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); // Fließkommazahldarstellung
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 (Großbuchstaben)
printf("%%+d = '%+d'\n", $n); // Vorzeichenangabe für positive Integerzahlen
printf("%%+d = '%+d'\n", $u); // Vorzeichenangabe für negative Integerzahlen
?>
Das oben gezeigte Beispiel erzeugt folgende 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'
Beispiel #7 printf(): Stringformatierung
<?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
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
[monkey] [ monkey] [monkey ] [0000monkey] [####monkey] [many monke]
Beispiel #8 sprintf(): Mit Nullen aufgefüllte Integer
<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>
Beispiel #9 sprintf(): Währungsformatierung
<?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
?>
Beispiel #10 sprintf(): Wissenschaftliche Notation
<?php
$number = 362525200;
echo sprintf("%.3e", $number); // Ausgabe 3.625e+8
?>