PHP vprintf() function

halimbawa

magmagawa ng format na string na napapalit:

<?php
$number = 9;
$str = “Beijing”;
vprintf(“Mayroon 쥕yong bisikleta sa %s.”, array($number, $str));
?>

Run Instance

pagsasakop at paggamit

ang output ng vprintf() function ay isang format na string.

hindi katulad ng printf(),ang argumento sa vprintf() ay nasa array. Ang mga elemento ng array ay ilalagay sa lugar ng simbolo na % sa pangunahing string. Ang function na ito ay sinusunod-sunod. Sa unang % simbolo, ilalagay ang unang elemento ng array, sa ikalawang % simbolo, ilalagay ang ikalawang elemento ng array, at ipinagpatuloy pa.

注释:kung mayroong % simbolo arg kung mayroong parameter, dapat gamitin ang placeholder. Ang placeholder ay ipinapasok sa pagkatapos ng simbolo na %, binubuo ng numero at “\$”. Tignan ang halimbawa 2.

paalala:kaugnay na function: sprintf()、 printf()、 vsprintf()、 fprintf() at vfprintf()

pahayag

vprintf(format,argarray)
parameter paglalarawan
format

dapat. tutukoy ang string at kung paano formatin ang mga variable nito.

posible na format na halaga:

  • %% - ibabalik ang isang simbolo ng porsyento %%
  • %b - binary number
  • %c - character na tumutugma sa ASCII value
  • %d - decimal number na may simbolo ng positibo o negatibo(mababa, 0, positibo)
  • %e - gamit ang maliliit na titik sa scientific notation(halimbawa 1.2e+2)
  • %E - gamit ang malaking titik sa scientific notation(halimbawa 1.2E+2)
  • 蒝ecimal number na walang simbolo ng positibo o negatibo(mas mababa sa 0)
  • %f - floating-point number(lokal na setting)
  • %F - floating-point number(hindi lokal na setting)
  • %g - mas maikling %e at %f
  • %G - mas maikling %E at %f
  • %o - octal number
  • %s - string
  • %x - hexadecimal number(maliit ang titik)
  • %X - hexadecimal number(malaki ang titik)

dagdag na format na halaga. dapat ilagay sa pagitan ng % at ang titik na alpabeto(halimbawa: %.2f):

  • + (magdagdag ng + o - sa harap ng numero upang tukuyin ang positibong o negatibong katangian ng numero. Ang default ay ang kung anong negatibong numero lamang ang may marka, ang positibong numero ay hindi)
  • ‘ (tutukoy kung anong gamitin bilang padyak, ang default ay bakanteng espasyo. Dapat ito ay gamitin kasama ang tagapagpili ng lapad. Halimbawa: ‘%x20s(gagamitin ang “x” bilang padyak))
  • - (magpakaliwang kalaunan ang halaga ng variable)
  • [0-9] (tutukoy ang pinakamaliit na lapad ng halaga ng variable)
  • .[0-9] (规定小数位数或最大字符串长度)

注释:如果使用多个格式值,它们必须按照以上顺序。

argarray 必需。带有参数的一个数组,这些参数会被插到 format 字符串中的 % 符号处。

技术细节

返回值: 返回被输出的字符串的长度。
PHP 版本: 4.1.0+

更多实例

例子 1

使用格式值 %f:

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

Run Instance

例子 2

使用占位符:

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

Run Instance

例子 3

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

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII 字符 50 是 2
// 注释:格式值 "%%" 返回百分号
printf("%%b = %b <br>",$num1); // 二进制数
printf("%%c = %c <br>",$char); // ASCII 字符
printf("%%d = %d <br>",$num1); // 带符号的十进制数
printf("%%d = %d <br>",$num2); // 带符号的十进制数
printf("%%e = %e <br>",$num1); // 科学计数法(小写)
printf("%%E = %E <br>",$num1); // 科学计数法(大写)
printf("%鑾u <br>",$num1); // 不带符号的十进制数(正)
printf("%鑾u <br>",$num2); // 不带符号的十进制数(负)
printf("%%f = %f <br>",$num1); // 浮点数(视本地设置)
printf("%%F = %F <br>",$num1); // 浮点数(不视本地设置)
printf("%%g = %g <br>",$num1); // 短于 %e 和 %f
printf("%%G = %G <br>",$num1); // 短于 %E 和 %f
printf("%%o = %o <br>",$num1); // Octal Number
printf("%%s = %s <br>",$num1); // String
printf("%%x = %x <br>",$num1); // Hexadecimal Number (Lower Case)
printf("%%X = %X <br>",$num1); // Hexadecimal Number (Upper Case)
printf("%%+d = %+d <br>",$num1); // Symbol Notation (Positive)
printf("%%+d = %+d <br>",$num2); // Symbol Notation (Negative)
?>

Run Instance

Halimbawa 4

Pamamalakad ng String Notation:

<?php
$str1 = "Hello";
$str2 = "Hello world!";
vprintf("[%s]<br>",array($str1));
vprintf("[%8s]<br>",array($str1));
vprintf("[%-8s]<br>",array($str1));
vprintf("[%08s]<br>",array($str1));
vprintf("[%'*8s]<br>",array($str1));
vprintf("[%8.8s]<br>",array($str2));
?>

Run Instance