The vfprintf() function writes a formatted string to a specified output stream (file or database).
Unlike fprintf(), the arguments in vfprintf(), are placed in an array.
PHP vfprintf() Function has the following syntax.
vfprintf(stream,format,argarray)
This function takes a variable number of parameters: the first parameter is a format string, followed by zero or other parameters of various types.
The format strings for sprintf() is listed as follows.
Format | Meaning |
---|---|
%% | A literal percent character; no matching parameter is required |
%b | Parameter is an integer; output it as binary |
%c | Parameter is an integer; output it as a character with that ASCII value |
%d | Parameter is a positive integer; output it as decimal |
%e | Scientific notation using a lowercase (e.g. 1.2e+2) |
%E | Scientific notation using a uppercase (e.g. 1.2E+2) |
%f | Parameter is a float; express it as a float |
%F | Floating-point number (not local settings aware) |
%g | shorter of %e and %f |
%G | shorter of %E and %f |
%o | Parameter is an integer; output it as octal |
%s | Parameter is a string; output it as a string |
%u | Unsigned decimal number (equal to or greather than zero) |
%x | Parameter is an integer; output it as hexadecimal with lowercase letters |
%X | Parameter is an integer; output it as hexadecimal with uppercase letters |
Additional format values are placed between the % and the letter (example %.2f):
Additional format | Meaning |
---|---|
+ | Forces both + and - in front of numbers. By default, only negative numbers are marked |
' | What to use as padding. Default is space. Must be used together with the width specifier. Example: %'q20s (this uses "q" as padding) |
- | Left-justifies the variable value |
[0-9] | Minimum width held of to the variable value |
.[0-9] | Number of decimal digits or maximum string length |
The multiple additional format values must be in the same order as above.
Returns the length of the written string
Write some text to a text file named "test.txt":
<?php
$number = 1;
$str = "PHP";
$file = fopen("test.txt","w");
echo vfprintf($file,"There are %u million %s developers.",array($number,$str));
?>
Write some text to a file:
<?php
$num1 = 123;
$num2 = 456;
$file = fopen("test.txt","w");
vfprintf($file,"%f%f",array($num1,$num2));
?>
Use of placeholders:
<?php
$number = 123;
$file = fopen("test.txt","w");
vfprintf($file,"With 2 decimals: %1\$.2f
\nWith no decimals: %1\$u",array($number));
?>
Using printf() to demonstrate all possible format values:
<?php// ww w . j a v a 2 s. c om
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // The ASCII Character 50 is 2
// Note: The format value "%%" returns a percent sign
printf("%%b = %b \n",$num1); // Binary number
printf("%%c = %c \n",$char); // The ASCII Character
printf("%%d = %d \n",$num1); // Signed decimal number
printf("%%d = %d \n",$num2); // Signed decimal number
printf("%%e = %e \n",$num1); // Scientific notation (lowercase)
printf("%%E = %E \n",$num1); // Scientific notation (uppercase)
printf("%%u = %u \n",$num1); // Unsigned decimal number (positive)
printf("%%u = %u \n",$num2); // Unsigned decimal number (negative)
printf("%%f = %f \n",$num1); // Floating-point number (local settings aware)
printf("%%F = %F \n",$num1); // Floating-point number (not local settings aware)
printf("%%g = %g \n",$num1); // Shorter of %e and %f
printf("%%G = %G \n",$num1); // Shorter of %E and %f
printf("%%o = %o \n",$num1); // Octal number
printf("%%s = %s \n",$num1); // String
printf("%%x = %x \n",$num1); // Hexadecimal number (lowercase)
printf("%%X = %X \n",$num1); // Hexadecimal number (uppercase)
printf("%%+d = %+d \n",$num1); // Sign specifier (positive)
printf("%%+d = %+d \n",$num2); // Sign specifier (negative)
?>