Blog : PHP vfprintf() Function

PHP vfprintf() Function

--------------------------------------------------------------------------------
 Complete PHP String Reference
--------------------------------------------------------------------------------

Definition and Usage
The vfprintf() function writes a formatted string to a specified output stream (example: file or database).

Unlike fprintf(), the arguments in vfprintf(), are placed in an array. The array elements will be inserted at the percent (%) signs in the main string. This function works "step-by-step". At the first % sign, the first array element is inserted, at the second % sign, the second array element is inserted, etc.

The vfprintf() function returns the length of the written string.

Syntax
vfprintf(stream,format,argarray)  

Parameter Description
stream Required. Specifies where to write/output the string
format Required. Specifies the string and how to format the variables in it.
Possible format values:

%% - Returns a percent sign
%b - Binary number
%c - The character according to the ASCII value
%d - Signed decimal number
%e - Scientific notation (e.g. 1.2e+2)
%u - Unsigned decimal number
%f - Floating-point number (local settings aware)
%F - Floating-point number (not local settings aware)
%o - Octal number
%s - String
%x - Hexadecimal number (lowercase letters)
%X - Hexadecimal number (uppercase letters)
Additional format values. These are placed between the % and the letter (example %.2f):

+ (Forces both + and - in front of numbers. By default, only negative numbers are marked)
' (Specifies what to use as padding. Default is space. Must be used together with the width specifier. Example: %'x20s (this uses "x" as padding)
- (Left-justifies the variable value)
[0-9] (Specifies the minimum width held of to the variable value)
.[0-9] (Specifies the number of decimal digits or maximum string length)
Note: If multiple additional format values are used, they must be in the same order as above.
 
argarray Required. An array with arguments to be inserted at the % signs in the format string


--------------------------------------------------------------------------------

Tips and Notes
Note: If there are more % signs than arguments, you must use placeholders. A placeholder is inserted after the % sign, and consists of the argument- number and "\$". See example three.

Tip: Related functions: fprintf(), printf(), sprintf(), vprintf(), and vsprintf().


--------------------------------------------------------------------------------

Example 1
$str = "Hello";
$number = 123;
$file = fopen("test.txt","w");
echo vfprintf($file,"%s world. Day number %u",array($str,$number));
?>  

The output of the code above will be:

27  

The following text will be written to the file "test.txt":

Hello world. Day number 123  


--------------------------------------------------------------------------------

Example 2
$num1 = 123;
$num2 = 456;
$file = fopen("test.txt","w");
vfprintf($file,"%f%f",array($num1,$num2));
?>  

The following text will be written to the file "test.txt":

123.000000456.000000  


--------------------------------------------------------------------------------

Example 3
Use of placeholders:

$number = 123;
$file = fopen("test.txt","w");
vfprintf($file,"With 2 decimals: %1\$.2f
\nWith no decimals: %1\$u",array($number));
?>  

The following text will be written to the file "test.txt":

With 2 decimals: 123.00
With no decimals: 123