sprintf
(PHP 4, PHP 5, PHP 7)
sprintf — Gibt einen formatierten String zurück
Beschreibung
Gibt eine anhand des Formatierungs-Strings format
gebildete Zeichenkette zurück.
Parameter-Liste
-
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 Formatierungs-Anweisungen besteht aus einem Prozent-Zeichen (%), gefolgt von einem oder mehrereren der folgenden Elemente:
- Eine optionale Vorzeichenangabe, die die Verwendung eines Vorzeichens (- oder +) vor einer Zahl erzwingt. Standardmäßig wird nur das - Zeichen vor negativen Zahlen verwendet. Die Vorzeichenangabe erzwingt, dass positive Zahlen ein + Zeichen vorangestellt bekommen.
- Ein optionales Füllzeichen, das festlegt, mit welchem Zeichen ein String bis zum Erreichen einer bestimmten Länge aufgefüllt wird. 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.
- Eine optionale Angabe der Ausrichtung, die bestimmt, ob das Ergebnis rechts- oder linksbündig ausgerichtet werden soll. Das Standardverhalten ist rechtsbündige Ausrichtung, ein --Zeichen an dieser Stelle lässt den Text linksbündig erscheinen.
- Eine optionale Zahl für die Längenangabe, welche die mindestens zurückzugebende Anzahl Zeichen spezifiziert.
- Eine optionale Genauigkeitsangabe in der Form eines Punktes (.) gefolgt von einem optionalen Dezimalstring. Dieser drückt aus, wieviele Dezimalstellen für Fließkommazahlen ausgegeben werden sollten. Wenn Sie diese Angabe auf einen String anwenden, fungiert sie als Grenzpunkt, der die maximale Zeichenzahl der ausgegebenen Zeichenkette bestimmt. Zusätzlich kann optional das Zeichen, das zum Auffüllen einer Zahl verwendet werden soll, zwischen dem Punkt und der Ziffer angegeben werden.
-
Eine Typangabe, welche den Typ enthält, als der das jeweils übergebene Argument angesehen werden soll. Mögliche Angaben sind:
- % - ein Prozentzeichen. 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 als vorzeichenbehafteter Dezimalwert (signed integer) ausgegeben.
- e - das Argument wird als wissenschaftliche Notation betrachtet (z.B. 1.2e+2). Die Genauigkeitsangabe steht seit PHP 5.2.1 für die Anzahl der Dezimalstellen. In früheren PHP-Versionen wurde sie als signifikante Stelle betrachtet (eine Stelle weniger).
- E - wie %e, mit dem Unterschied, dass ein großes E verwendet wird (z.B. 1.2E+2).
- f - das Argument wird als float angesehen und entsprechend der Einstellungen in den locales als Fließkommazahl ausgegeben.
- F - das Argument wird als float angesehen und unabhängig von den Einstellungen in den locales als Fließkommazahl ausgegeben. Verfügbar ab PHP 5.0.3.
- g - das Kürzere von %e und %f.
- G - das Kürzere von %E und %F.
- o - das Argument wird als Integer angesehen und als Oktalzahl ausgegeben.
- s - das Argument wird als String angesehen und auch als solcher ausgegeben.
- u - das Argument wird als Integer angesehen und ein positiver vorzeichenloser Dezimalwert (unsigned integer) ausgegeben.
- x - das Argument wird als Integer angesehen und als Hexadezimalwert ausgegeben (mit Kleinbuchstaben).
- X - das Argument wird als Integer angesehen und als Hexadezimalwert ausgegeben (mit Großbuchstaben).
Variablen werden in einen für die Typangabe passenden Typ konvertiert:
Typ-Behandlung Typ Typangaben string s integer d, u, c, o, x, X, b double g, G, e, E, f, F WarnungDer Versuch der Verwendung einer Kombination von Stringtyp- und Längenangaben bei Zeichensätzen, die mehr als ein Byte pro Zeichen benötigen, kann zu unerwarteten Ergebnissen führen
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';
echo sprintf($format, $anzahl, $ort);
?>Beispiel #2 Argumente tauschen
<?php
$format = 'Der %s enthält %d Affen';
echo sprintf($format, $anzahl, $ort);
?>Beispiel #3 Argumente tauschen
<?php
$format = 'Der %2$s enthält %1$d Affen';
echo sprintf($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.';
echo sprintf($format, $anzahl, $ort);
?>Beispiel #5 Angabe von Füllzeichen
<?php
echo sprintf("%'.9d\n", 123);
echo sprintf("%'.09d\n", 123);
?>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
......123 000000123
Beispiel #6 Positionstausch mit weiteren Spezifikatoren
<?php
$format= 'Der %2$s enthält %1$04d Affen';
echo sprintf($format, $anzahl, $ort);
?>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Der Baum enthält 0005 Affen.
Hinweis:
Der Versuch der Verwendung einer Positionsangabe, die größer als
PHP_INT_MAX
ist, hat zur Folge, dass sprintf() Warnungen erzeugt.WarnungDie c-Typangabe ignoriert Füllzeichen und Längenangabe
-
...
-
Rückgabewerte
Gibt eine an Hand des Formatierungs-Strings format
gebildete Zeichenkette zurück. Im Fehlerfall wird FALSE
zurückgegeben.
Beispiele
Beispiel #7 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 #8 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 #9 sprintf(): Mit Nullen aufgefüllte Integer
<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>
Beispiel #10 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 #11 sprintf(): Wissenschaftliche Notation
<?php
$number = 362525200;
echo sprintf("%.3e", $number); // Ausgabe 3.625e+8
?>
Siehe auch
- printf() - Gibt einen formatierten String aus
- sscanf() - Überträgt einen String in ein angegebenes Format
- fscanf() - Interpretiert den Input einer Datei entsprechend einem angegebenen Format
- vsprintf() - Gibt einen formatierten String zurück
- number_format() - Formatiert eine Zahl mit Tausender-Trennzeichen
- date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-sprintf.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.