PHP String vfprintf() Function
The PHP String vfprintf() function is used to write a string created using format to the stream resource defined by stream. This function works similarly to fprintf(), but takes an array of parameters rather than a variable number of arguments.
Syntax
Below is the syntax of the PHP String vfprintf() function −
int vfprintf ( resource $stream, string $format, array $values )
Parameters
Here are the parameters of the vfprintf() function −
$stream − (Required) It is used to specify where to write or output the string.
$format − (Required) It is used to specify the string and how to format the variables within it.
$values − (Required) It is an array of arguments to be put between the% signs in the format string.
Return Value
The vfprintf() function returns the length of the written string.
Errors/Exceptions
Here are the errors and exceptions listed below −
If the number of arguments is zero, a ValueError is thrown (since PHP 8.0.0). Prior to PHP 8.0.0, an E_WARNING was issued instead.
PHP 8.0.0 throws a ValueError if [width] is less than zero or greater than PHP_INT_MAX. Prior to PHP 8.0.0, an E_WARNING was issued instead.
PHP 8.0.0 throws a ValueError if [precision] is less than zero or greater than PHP_INT_MAX. Prior to PHP 8.0.0, an E_WARNING was issued instead.
When fewer arguments are provided than are required, a ValueError is thrown. Prior to PHP 8.0.0, false was returned, and an E_WARNING was issued instead.
PHP Version
First introduced in core PHP 5, the vfprintf() function continues to function easily in PHP 7, and PHP 8.
Example 1
Here is the basic example of the PHP String vfprintf() function to write a string with placeholders into the given file. The data will be replaced with the help of the $values array.
<?php
// Open a file for writing
$file = fopen("/PHP/PhpProjects/myfile1.txt", "w");
// Data to be written
$format = "Hello, %s! You are %d years old.";
$values = ["Amit", 25];
// Use vfprintf() to write formatted data to the file
vfprintf($file, $format, $values);
// Close the file
fclose($file);
echo "Data written to myfile1.txt successfully.";
?>
Output
Here is the outcome of the following code −
Data written to myfile.txt successfully.
Example 2
In the below PHP code we will try to use the vfprintf() function and write multiple formatted lines in the given file.
<?php
// Open a file for writing
$file = fopen("/PHP/PhpProjects/myfile2.txt", "w");
// Define format and data
$format = "Name: %s, Age: %d, City: %s\n";
$data = [
["Amit", 30, "New Delhi"],
["Priya", 22, "Mumbai"],
["Lokesh", 35, "Hyderabad"]
];
// Loop through data and write each line to the file
foreach ($data as $values) {
vfprintf($file, $format, $values);
}
// Close the file
fclose($file);
echo "Multiple lines written to myfile2.txt.";
?>
Output
This will generate the below output −
Multiple lines written to myfile2.txt.
Example 3
Now the below code writes a formatted string to the browser or terminal output using the vfprintf() function.
<?php // Use the standard output stream $format = "Welcome %s! Your balance is Rs.%.2f\n"; $values = ["Shekhar", 123400.56]; // Write directly to the output stream vfprintf(STDOUT, $format, $values); ?>
Output
This will create the below output −
Welcome Shekhar! Your balance is Rs.123400.56