PHP vsprintf() functie

Voorbeeld

Schrijf de geformatteerde tekst naar de variabele:

<?php
$number = 9;
$str = "Beijing";
$txt = vsprintf("Er zijn 쥕joen fietsen in %s.", array($number, $str));
echo $txt;
?>

Uitvoervoorbeeld

Definitie en gebruik

De functie vsprintf() schrijft de geformatteerde tekst naar de variabele.

Verschillend van sprintf(), bevinden de parameters in vsprintf() in een array. De arrayelementen worden ingevoegd op de plaats van het percentage (%)teken in de hoofdtekst. Deze functie voert stapsgewijs uit. Bij het eerste %teken wordt het eerste arrayelement ingevoegd, bij het tweede %teken het tweede arrayelement, enzovoort.

Opmerking:Als er meer dan een % symbool is arg Als je parameters gebruikt, moet je placeholder gebruiken. Placeholders worden ingesprongen na het % symbool, bestaande uit een getal en "\$". Zie voorbeeld 2.

Tip:Gerelateerde functies:

Syntax

vsprintf(opmaak,argarray)
Parameters Beschrijving
opmaak

Verplicht. Bepaalt de string en hoe de variabelen ervan worden geformatteerd.

Mogelijke opmaakwaarden:

  • %% - Geef een procentteken % terug
  • %b - Binary number
  • %c - ASCII waarde van het karakter
  • %d - Decimal number with sign (negatief, 0, positief)
  • %e - Gebruik kleine letters in wetenschappelijke notatie (bijvoorbeeld 1.2e+2)
  • %E - Gebruik hoofdletters in wetenschappelijke notatie (bijvoorbeeld 1.2E+2)
  • 蒝ecimal number without sign (groter dan of gelijk aan 0)
  • %f - Floating-point number (lokaal ingesteld)
  • %F - Floating-point number (niet lokaal ingesteld)
  • %g - Korter dan %e en %f
  • %G - Korter dan %E en %f
  • %o - Octaal getal
  • %s - String
  • %x - Hexadecimaal getal (kleine letters)
  • %X - Hexadecimaal getal (hoofdletters)

Aanvullende opmaakwaarden. Verplicht geplaatst tussen % en het lettertype (bijvoorbeeld %.2f):

  • + (voeg een + of - toe voor het definiëren van het positieve of negatieve teken van het getal. Standaard wordt alleen het negatieve teken gemarkeerd, niet het positieve teken)
  • ' (bepaalt wat als vulling wordt gebruikt, standaard is dit een spatie. Dit moet samen worden gebruikt met de breedteindicator. Bijvoorbeeld: '%'x20s (gebruik 'x' als vulling))
  • - (links uitlijnen van de variabele)
  • .[0-9] (bepaalt de minimale breedte van de variabele)
  • .[0-9] (bepaalt het aantal decimale cijfers of de maximale stringlengte)

Opmerking:Als je meerdere van deze opmaakwaarden gebruikt, moeten ze in de volgorde van boven worden gebruikt en mogen ze niet worden verward.

argarray Verplicht. Een array met parameters, die worden ingesprongen opmaak De % symbool in de string.

Technische details

Retourwaarde: Geef de arraywaarden terug in de vorm van een opgemaakte string.
PHP versie: 4.1.0+

Meer voorbeelden

Voorbeeld 1

Gebruik de opmaakwaarde %f:

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

Uitvoervoorbeeld

例子 2

使用占位符:

<?php
$number = 123;
$txt = vsprintf("有两位小数:%1\$.2f<br>没有小数:%1\$u",array($number));
echo $txt;
?>

Uitvoervoorbeeld

例子 3

使用 sprintf() 来演示所有可能的格式值:

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII 字符 50 是 2
// 注释:格式值 "%%" 返回百分号
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>"; // Hexadecimaal getal (kleine letters)
echo sprintf("%%X = %X",$num1)."<br>"; // Hexadecimaal getal (hoofdletters)
echo sprintf("%%+d = %+d",$num1)."<br>"; // Tekenaanduiding (positief)
echo sprintf("%%+d = %+d",$num2)."<br>"; // Tekenaanduiding (negatief)
?>

Uitvoervoorbeeld

Voorbeeld 4

Demonstratie van string aanwijzers:

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

Uitvoervoorbeeld