PHP vfprintf()
函数用于将格式化的字符串转换为特定的输出流。在 vfprintf() 中,参数被放置在一个数组中。数组的元素将与主字符串中的百分号 (%) 一起插入, vfprintf() 函数会在每个 % 符号插入一个元素。
语法
下面给出了vfprintf()的语法,其中所有三个参数是不能为空的。
vfprintf( $stream, $format, $argarray)
参数
参数 | 说明 | 必须/可选 |
---|---|---|
stream | 这是vfprintf() 函数必传参数,指定将字符串写入的位置。 | 必须 |
format | 它也是 vfprintf() 函数的必传参数,指定了字符串,以及如何格式化其中的变量。 可能的格式值:
其他格式值: 这些值位于 % 符号和字母,例如,%.2f
| 必须 |
argarray | 将在 % 符号处插入带参数的数组在格式字符串中。它是 vfprintf() 函数的必传参数。 | 必须 |
返回值
vfprintf()函数返回写入字符串的长度。
注意
如果 % 符号多于参数,那么我们必须使用占位符。在 % 符号之后插入一个占位符,并包含 - 数字和"$"等参数。
PHP 5 和 以上 版本支持该函数。与 fprintf() 不同,vfprintf() 中的参数放置在数组中。该函数返回写入文件的字符串的长度。
示例
下面一些给出例子来理解vfprintf()的使用方法。
示例1
在下面的例子中,我们将在write中打开一个test.txt文件模式("w")在其中写入一些数据。如果 test.txt 文件不存在,它会自动在同一个文件夹中创建该文件,然后我们可以在其中写入文本。
<?php
$num1 =71;
$str = "earth";
$file = fopen("test.txt", "w");
echo vfprintf($file, "There is %u percent water on %s", array($num1, $str));
fclose($file);
?>
输出:
34
下面的文本会被写入test.txt文件中。
There is 71 percent water on earth.
注意:在写入模式"w"下,文件的现有数据将是删除并覆盖新数据。
示例2
<?php
$num1 =512;
$num2 = -246;
$file = fopen("test.txt", "w");
echo vfprintf($file, "%f\n%u ", array($num1, $num2));
fclose($file);
?>
输出:
32
测试中会写入以下数据.txt 文件。
512.000000
18446744073709551370
示例3
<?php
$number1 = 278;
$file = fopen("test.txt", "w");
echo vfprintf($file, "With 3 decimal: %1\$.3f\n Without decimal: %1\$u", array($number1));
fclose($file);
?>
输出:
45
以下数据将写在 test.txt 文件中。
With 3 decimal: 278.000
Without decimal: 278