PHP vsprintf() funktionen
Exempel
Skriv formaterad sträng till variabeln:
<?php $number = 9; $str = "Beijing"; $txt = vsprintf("Det finns 쥕joner cyklar i %s.", array($number, $str)); echo $txt; ?>
Definition och användning
vsprintf() funktionen skriver formaterad sträng till variabeln.
Verskillig från sprintf(), finns parametrarna i vsprintf() i en array. Array-elementen kommer att sättas in i huvudsträngen vid procenttecken (%). Funktionen körs stegvis. På det första %-tecknet läggs det första array-elementet in, på det andra %-tecknet läggs det andra array-elementet in, och så vidare.
Kommentar:Om det finns fler %-tecken än arg Om det finns flera %-tecken, måste du använda placeholder. Placeholder placeras efter % och består av ett nummer och "\$". Se exempel 2.
Tips:Relaterade funktioner:
Syntax
vsprintf(format,argarray)
Parameter | Beskrivning |
---|---|
format |
Obligatoriskt. Anger strängen och hur variablerna i den formateras. Möjliga formatvärden:
Ytterligare formatvärden. Obligatoriskt att placera mellan % och bokstav (t.ex. %.2f):
Kommentar:Om flera av de ovanstående formatvärdena används, måste de användas i den ordning som anges ovan och inte förvirras. |
argarray | Obligatoriskt. En array med parametrar som placeras in i format Platsen för %-tecknet i strängen. |
Tekniska detaljer
Returvärde: | Återger arrayvärdet i formaterad sträng. |
PHP-version: | 4.1.0+ |
Mer exempel
Exempel 1
Använd formatvärde %f:
<?php $num1 = 123; $num2 = 456; $txt = vsprintf("%f%f",array($num1,$num2)); echo $txt; ?>
Exempel 2
Använd platshållare:
<?php $number = 123; $txt = vsprintf("med två decimaler:%1\$.2f<br>utan decimaler:%1\$u",array($number)); echo $txt; ?>
Exempel 3
Använd sprintf() för att demonstrera alla möjliga formatvärden:
<?php $num1 = 123456789; $num2 = -123456789; $char = 50; // ASCII 字符 50 är 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>"; // Hexadecimaltal (små bokstäver) echo sprintf("%%X = %X",$num1)."<br>"; // Hexadecimaltal (stora bokstäver) echo sprintf("%%+d = %+d",$num1)."<br>"; // Teckenanvändningssymbol (positiv) echo sprintf("%%+d = %+d",$num2)."<br>"; // Teckenanvändningssymbol (negativ) ?>
Exempel 4
Demonstration av stränganvändningssymboler:
<?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>"; ?>