PHP vsprintf()Funktionen
Beispiele
Eine formatierte Zeichenfolge in eine Variable schreiben:
$number = 9;
$str = "Beijing";
$txt = vsprintf("Es gibt %u Millionen Fahrräder in %s.",array($number,$str));
echo $txt;
?>
Beispiel ausführen »
Definition und Verwendung
Die Funktion vsprintf() schreibt eine formatierte Zeichenkette in eine Variable.
Anders als bei sprintf() werden die Argumente in vsprintf() in einem Array abgelegt. Die Array-Elemente werden an den Prozentzeichen (%) in der Hauptzeichenkette eingefügt. Diese Funktion wird Schritt für Schritt ausgeführt. Beim ersten %-Zeichen wird das erste Array-Element eingefügt, beim zweiten %-Zeichen das zweite Array-Element und so weiter.
Hinweis:Wenn es mehr %-Zeichen als arg-Parameter gibt, müssen Sie Platzhalter verwenden. Der Platzhalter wird nach dem %-Zeichen eingefügt und besteht aus einer Zahl und "\$". Siehe Beispiel 2.
Tipp:Verwandte Funktionen:fprintf()、 vfprintf()、 printf()、 sprintf()undvprintf()
Syntax
| Parameter | Beschreibung |
|---|---|
| format | Erforderlich. Gibt die Zeichenfolge an und wie die darin enthaltenen Variablen formatiert werden. Mögliche Formatwerte:
Zusätzliche Formatwerte. Müssen zwischen dem % und dem Buchstaben stehen (z. B. %.2f):
Hinweis:Wenn mehrere der oben genannten Formatwerte verwendet werden, müssen sie in der oben angegebenen Reihenfolge verwendet werden und dürfen nicht neu angeordnet werden. |
| argarray | Erforderlich. Ein Array mit Argumenten, die an den %-Zeichen in der Formatzeichenfolge eingefügt werden. |
Technische Details
| Rückgabewert: | Gibt die Array-Werte als formatierte Zeichenkette zurück. |
|---|---|
| PHP-Version: | 4.1.0+ |
Weitere Beispiele
Beispiel 1
Verwenden des Formatwerts %f:
$num1 = 123;
$num2 = 456;
$txt = vsprintf("%f%f",array($num1,$num2));
echo $txt;
?>
Beispiel ausführen »
Beispiel 2
Verwendung von Platzhaltern:
$number = 123;
$txt = vsprintf("Mit 2 Dezimalstellen: %1$.2f
<br>Ohne Dezimalstellen: %1$u",array($number));
echo $txt;
?>
Beispiel ausführen »
Beispiel 3
Mit sprintf() werden alle möglichen Formatwerte demonstriert:
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // Das ASCII-Zeichen 50 ist 2
// Hinweis: Der Formatwert "%%" gibt ein Prozentzeichen zurück
echo sprintf("%%b = %b",$num1)."<br>"; // Binär Zahl
echo sprintf("%%c = %c",$char)."<br>"; // Das ASCII-Zeichen
echo sprintf("%%d = %d",$num1)."<br>"; // Vorzeichenbehaftete Dezimalzahl
echo sprintf("%%d = %d",$num2)."<br>"; // Vorzeichenbehaftete Dezimalzahl
echo sprintf("%%e = %e",$num1)."<br>"; // Wissenschaftliche Notation (Kleinbuchstaben)
echo sprintf("%%E = %E",$num1)."<br>"; // Wissenschaftliche Notation (Großbuchstaben)
echo sprintf("%%u = %u",$num1)."<br>"; // Vorzeichenlose Dezimalzahl (positiv)
echo sprintf("%%u = %u",$num2)."<br>"; // Vorzeichenlose Dezimalzahl (negativ)
echo sprintf("%%f = %f",$num1)."<br>"; // Gleitkommazahl (abhängig von lokalen Einstellungen)
echo sprintf("%%F = %F",$num1)."<br>"; // Gleitkommazahl (nicht von lokalen Einstellungen abhängig)
echo sprintf("%%g = %g",$num1)."<br>"; // Kürzere von %e und %f
echo sprintf("%%G = %G",$num1)."<br>"; // Kürzere von %E und %f
echo sprintf("%%o = %o",$num1)."<br>"; // Oktalzahl
echo sprintf("%%s = %s",$num1)."<br>"; // Zeichenkette
echo sprintf("%%x = %x",$num1)."<br>"; // Hexadezimalzahl (Kleinbuchstaben)
echo sprintf("%%X = %X",$num1)."<br>"; // Hexadezimalzahl (Großbuchstaben)
echo sprintf("%%+d = %+d",$num1)."<br>"; // Vorzeichenbezeichner (positiv)
echo sprintf("%%+d = %+d",$num2)."<br>"; // Vorzeichenbezeichner (negativ)
?>
Beispiel ausführen »
Beispiel 4
Demonstration der String-Spezifizierer:
$str1 = "Hello";
$str2 = "Hello world!";
echo vsprintf("[%s]",array($str1))."<br>";
echo vsprintf("[%8s]",array($str1))."<br>";
echo vsprintf("[%-8s]",array($str1))."<br>";
echo vsprintf("[%08s]",array($str1))."<br>";
echo vsprintf("[%'*8s]",array($str1))."<br>";
echo vsprintf("[%8.8s]",array($str2))."<br>";
?>
Beispiel ausführen »
PHP-String-Referenzhandbuch Weitere Erweiterungen