PHP String vprintf()函数
vprintf()是PHP的一个内置字符串函数。它用于根据格式将数组值显示为格式化字符串。该函数的主要目的是显示格式化字符串。PHP 4及以上版本支持vprintf()字符串函数。
vprintf()函数的工作方式类似于printf()函数,但它接受一个参数数组。这些参数数组的元素将插入到主字符串中的百分号(%)标记处。vprintf()函数是逐步进行的。在每个%标记处,元素被插入。在成功执行后,它返回输出字符串的长度。
注意:如果%标记多于函数中传递的参数,则必须使用占位符。占位符总是在%标记之后插入,并包含参数(如数字和”“)。
与vfprintf()函数不同的是,它不包含stream参数,该参数指定字符串写入的位置。
相关函数
vfprintf()、vsprintf()、printf()是与vprintf()相似的一些函数。
语法
以下是vprintf()的语法,其中 参数 都是 必需 的。
vprintf( format,array_arg)
参数
$format (必需) - 这是vprintf()函数的一个必需参数,用于指定字符串的格式。
可能的格式值:
- %% – 返回一个百分号符号
- %b – 以二进制数表示
- %c – 根据ASCII值显示字符。
- %d – 以带符号的十进制数表示。
- %e – 参数按科学计数法表示,使用小写字母 (例如 3.2e+2)
- %E – 类似于 e 指定符,但使用大写字母 (例如 3.2E+2)
- %u – 无符号的十进制数
- %f – 以浮点数表示(支持本地化)
- %F – 也以浮点数表示,但不支持本地化
- %g – %e 和 %f 中较短的一个
- %G – %E 和 %F 中较短的一个
- %o – 以八进制数表示
- %s – 作为字符串进行处理和表示
- %x – 以小写字母表示的十六进制数
- %X – 以大写字母表示的十六进制数
额外的格式值:
这些值位于%符号和字母之间,例如%.2f
- + = 前缀同时标识+和-符号,默认只有负数标有负号。
- - = 在给定变量值内左对齐,右对齐是默认的。
- ‘ = 用字符填充结果。
- (空格) = 用空格填充结果。
- 0 = 只有对数字进行左填充为零。对于s指定符,它也可以用零进行右填充。
注意: 如果使用了多个额外的格式值,则它们必须按照上述顺序排列。
$array_arg (必需) - 这些是需要格式化的数组参数。数组中的参数将被插入到格式字符串的%符号处。
返回值
$array_arg (必需) vprintf()函数返回输出字符串的长度。
示例
以下是一些示例,通过它们我们可以学习vprintf()函数的工作原理。
示例1
在下面的示例中,我们将以写模式(”w”)打开一个test.txt文件,在其中写入一些数据。如果test.txt文件不存在,它将自动在相同的文件夹中创建该文件,然后我们可以写入文本。
?php
days =365;yr = "year.";
vprintf("There are %u days in 1 %s", array(days,yr));
?>
输出:
与vprintf()不同,它直接在浏览器上显示字符串数据,而不是在文件中显示。
There are 365 days in 1 year.
示例2:占位符的使用
<?php
num1 =12.35;
vprintf("With two decimal point: %1\$.2f With three decimal point: %1\$.3f With no decimal: %1\$u", array(num1));
?>
输出:
在上面的示例中,我们在这里使用了占位符,因为%多于在函数中传递的参数。
With two decimal point: 12.35
With three decimal point: 12.350
With no decimal: 12
以下数据将被写入test.txt文件。
512.000000
18446744073709551370