PHP vsprintf()Funktionen

PHP String 参考手册PHP-String-Referenzhandbuch

Beispiele

Eine formatierte Zeichenfolge in eine Variable schreiben:

<?php
$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

vsprintf(format,argarray)

Parameter Beschreibung
format Erforderlich. Gibt die Zeichenfolge an und wie die darin enthaltenen Variablen formatiert werden.

Mögliche Formatwerte:

  • %% - Gibt ein Prozentzeichen % zurück
  • %b - Binärzahl
  • %c - Das Zeichen, das dem ASCII-Wert entspricht
  • %d - Dezimalzahl mit Vorzeichen (negativ, null, positiv)
  • %e - Wissenschaftliche Notation mit Kleinbuchstaben (z. B. 1.2e+2)
  • %E - Wissenschaftliche Notation mit Großbuchstaben (z. B. 1.2E+2)
  • %u - Dezimalzahl ohne Vorzeichen (größer oder gleich 0)
  • %f - Gleitkommazahl (lokale Einstellungen)
  • %F - Gleitkommazahl (nicht-lokale Einstellungen)
  • %g - Kürzere Darstellung von %e und %f
  • %G - Kürzere Darstellung von %E und %f
  • %o - Oktalzahl
  • %s - Zeichenkette
  • %x - Hexadezimalzahl (Kleinbuchstaben)
  • %X - Hexadezimalzahl (Großbuchstaben)

Zusätzliche Formatwerte. Müssen zwischen dem % und dem Buchstaben stehen (z. B. %.2f):

  • + (Stellt einer Zahl + oder - voran, um ihr Vorzeichen zu definieren. Standardmäßig werden nur negative Zahlen gekennzeichnet, positive Zahlen nicht)
  • ' (Gibt an, welches Zeichen zum Auffüllen verwendet werden soll; standardmäßig ist es ein Leerzeichen. Es muss zusammen mit der Breitenangabe verwendet werden. Zum Beispiel: %'x20s (verwendet "x" zum Auffüllen))
  • - (Richtet den Variablenwert links aus)
  • [0-9] (Gibt die Mindestbreite des Variablenwerts an)
  • .[0-9] (Gibt die Anzahl der Dezimalstellen oder die maximale Zeichenkettenlänge an)

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:

<?php
$num1 = 123;
$num2 = 456;
$txt = vsprintf("%f%f",array($num1,$num2));
echo $txt;
?>

Beispiel ausführen »

Beispiel 2

Verwendung von Platzhaltern:

<?php
$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:

<?php
$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:

<?php
$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 参考手册PHP-String-Referenzhandbuch Weitere Erweiterungen