Funkcja vsprintf() w PHP

Przykład

Zapisz formowaną ciąg liter do zmiennej:

<?php
$number = 9;
$str = "Beijing";
$txt = vsprintf("There are 쥕lion bicycles in %s.",array($number,$str));
echo $txt;
?>

Przykłady uruchomieniowe

Definicja i użycie

Funkcja vsprintf() zapisuje formowaną ciąg liter do zmiennej.

Różni się od sprintf(), w vsprintf() parametry znajdują się w tablicy. Elementy tablicy będą wstawiane w miejsca symboli procentowych (%) w głównym łańcuchu. Funkcja jest wykonywana krok po kroku. W pierwszym symbolu % wstawia pierwszy element tablicy, w drugim symbolu % wstawia drugi element tablicy, i tak dalej.

Komentarz:Jeśli jest więcej symboli %} arg Jeśli używasz parametrów, musisz użyć znaków zastępczych. Znaki zastępcze są wstawiane po symbolu %, składają się z liczby i "\$". Zobacz przykład 2.

Wskazówka:Związane funkcje:

Gramatyka

vsprintf(format,argarray)
Parametry Opis
format

Wymagane. Określa ciąg znaków oraz sposób formatowania zmiennych w nim zawartych.

Możliwe wartości formatowe:

  • %% - zwraca znak procentu %
  • %b - liczba binarna
  • %c - znak ASCII
  • %d - dziesiętna liczba z znakiem plus lub minus (ujemna, 0, dodatnia)
  • %e - użycie małej litery w formacie wykładniczym (np. 1.2e+2)
  • %E - użycie dużej litery w formacie wykładniczym (np. 1.2E+2)
  • 蒝ziesiętna liczba bez znaku plus lub minus (większa lub równa 0)
  • %f - liczba zmiennoprzecinkowa (lokalizowana)
  • %F - liczba zmiennoprzecinkowa (nie lokalizowana)
  • %g - krótszy %e i %f
  • %G - krótszy %E i %f
  • %o - liczba ósemkowa
  • %s - ciąg znaków
  • %x - liczba szesnastkowa (małe litery)
  • %X - liczba szesnastkowa (duże litery)

Dodatkowe wartości formatowe. Muszą być umieszczone między % a literą (np. %.2f):

  • + (dodaje + lub - przed liczbą, aby zdefiniować znak plus lub minus liczby. Domyślnie, tylko ujemne liczby są oznaczane, liczby dodatnie nie są oznaczane)
  • ' (określa, co użyć jako wypełnienia, domyślnie jest to spacja. Musi być używane razem z określeniem szerokości. Na przykład: '%x20s' (używa "x" jako wypełnienia))
  • - (lewe wyjustowanie wartości zmiennej)
  • .[0-9] (określa minimalną szerokość wartości zmiennej)
  • .[0-9] (określa liczbę miejsc po przecinku lub maksymalną długość ciągu znaków)

Komentarz:Jeśli używasz wielu powyższych wartości formatowych, muszą być one używane w kolejności podanej powyżej, nie mogą być pomieszane.

argarray Wymagane. Tablica z parametrami, które będą wstawione format W miejscu symbolu % w ciągu znaków.

Szczegółowe informacje techniczne

Zwracana wartość: Zwraca wartości tablicy w formie formułowanej ciągu znaków.
Wersja PHP: 4.1.0+

Więcej przykładów

Przykład 1

Używaj wartości formatowej %f:

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

Przykłady uruchomieniowe

Przykład 2

Używaj znaków zastępczych:

<?php
$number = 123;
$txt = vsprintf("Z dwoma miejscami po przecinku:%1\$.2f<br>Bez miejsc po przecinku:%1\$u",array($number));
echo $txt;
?>

Przykłady uruchomieniowe

Przykład 3

Używaj sprintf() do pokazania wszystkich możliwych wartości formatowych:

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // Znak ASCII 50 to 2
// Komentarz: Wartość formatowa "%%" zwraca procent
echo sprintf("%%b = %b",$num1)."<br>"; // 二进制数
echo sprintf("%%c = %c",$char)."<br>"; // ASCII 字符
echo sprintf("%%d = %d",$num1)."<br>"; // 带符号的十进制数
echo sprintf("%%d = %d",$num2)."<br>"; // 带符号的十进制数
echo sprintf("%%e = %e",$num1)."<br>"; // 科学计数法(小写)
echo sprintf("%%E = %E",$num1)."<br>"; // 科学计数法(大写)
echo sprintf("%鑾u",$num1)."<br>"; // 不带符号的十进制数(正)
echo sprintf("%鑾u",$num2)."<br>"; // 不带符号的十进制数(负)
echo sprintf("%%f = %f",$num1)."<br>"; // 浮点数(视本地设置)
echo sprintf("%%F = %F",$num1)."<br>"; // 浮点数(不视本地设置)
echo sprintf("%%g = %g",$num1)."<br>"; // 短于 %e 和 %f
echo sprintf("%%G = %G",$num1)."<br>"; // 短于 %E 和 %f
echo sprintf("%%o = %o",$num1)."<br>"; // 八进制数
echo sprintf("%%s = %s",$num1)."<br>"; // 字符串
echo sprintf("%%x = %x",$num1)."<br>"; // Liczby szesnastkowe (małe litery)
echo sprintf("%%X = %X",$num1)."<br>"; // Liczby szesnastkowe (wielkie litery)
echo sprintf("%%+d = %+d",$num1)."<br>"; // Wskazówka znaków (dodatni)
echo sprintf("%%+d = %+d",$num2)."<br>"; // Wskazówka znaków (ujemny)
?>

Przykłady uruchomieniowe

Przykład 4

Przykład prezentacji znacznika łańcucha znaków:

<?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>";
?>

Przykłady uruchomieniowe