在PHP中,字符串函数 vfprintf() 将格式化字符串写入流(例如:文件或数据库)。
函数语法:
vfprintf ( resource $handle , string $format , array $args ) : int
函数参数说明:
参数 | 描述 |
---|---|
handle | 必需。规定在哪里写入/输出字符串。 |
format | 必需。规定字符串以及如何格式化其中的变量。 可能的格式值:
附加的格式值。必需放置在 % 和字母之间(例如 %.2f):
注释:如果使用多个上述的格式值,它们必须按照上面的顺序进行使用,不能打乱。 |
args | 必需。带有参数的一个数组,这些参数会被插到 format 字符串中的 % 符号处。 |
vfprintf() 函数把格式化的字符串写到指定的输出流(例如:文件或数据库)。它的作用和 fprintf() 类似,不过和 fprintf() 不同的是,vfprintf() 只接收一个数组参数,而不是一系列可变数量的参数。数组元素将被插入到主字符串中的 % 符号处,该函数是逐步执行的。在第一个 % 符号处,插入第一个数组元素,在第二个 % 符号处,插入第二个数组元素,依此类推。
如果 % 符号的格式值的个数多于 args 参数的个数,则需要使用占位符。占位符被插入到 % 符号后,由数字和“\$”组成。
举例1,把字符串写入到文件中:
<?php $arr = array('hello', 'world'); $file = fopen('test.txt', 'w'); // 将格式化字符串写入到文件中 echo vfprintf($file, '%s %s', $arr);
以上代码输出如下,返回写入的字符串长度(如果test.txt文件不存在,将创建文件):
11
同时,在 test.txt 文件中,我们会看到写入了“hello world”。
举例2,当args数组参数少于格式值时,需使用占位符进行格式化,并写入文件:
<?php $arr = array('hello', 'world'); $file = fopen('test.txt', 'w'); // 使用占位符,将格式化字符串写入到文件中 echo vfprintf($file, '%1$s %2$s,%1$s %2$s', $arr);
以上代码输出如下:
23
同时,在 test.txt 文件中,我们会看到写入了“hello world,hello world”。