PHP vfprintf()Function

PHP String 参考手册PHP String Reference Manual

Examples

Write some text to a text file named "test.txt":

<?php
$number = 9;
$str = "Beijing";
$file = fopen("test.txt","w");
echo vfprintf($file,"There are %u million bicycles in %s.",array($number,$str));
?>

The code above will output:

40

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

There are 9 million bicycles in Beijing.


Definition and Usage

The vfprintf() function writes a formatted string to the specified output stream (e.g., 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 is executed step by step. At the first % sign, the first array element is inserted, at the second % sign, the second array element is inserted, and so on.

Note:If there are more % signs than arg arguments, you must use placeholders. The placeholder is inserted after the % sign and consists of a number and "\$". See Example 2.

Tip:Related functions:fprintf()、 printf()、 sprintf()、vprintf()andvsprintf()


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 corresponding to the ASCII value
  • %d - Signed decimal number (negative, zero, positive)
  • %e - Scientific notation using lowercase (e.g. 1.2e+2)
  • %E - Scientific notation using uppercase (e.g. 1.2E+2)
  • %u - Unsigned decimal number (greater than or equal to 0)
  • %f - Floating-point number (locale-aware)
  • %F - Floating-point number (non-locale-aware)
  • %g - Shorter of %e and %f
  • %G - Shorter of %E and %f
  • %o - Octal number
  • %s - String
  • %x - Hexadecimal number (lowercase letters)
  • %X - Hexadecimal number (uppercase letters)

Additional format values. Must be placed between the % and the letter (e.g., %.2f):

  • + (Prepends + or - to a number to define its sign. By default, only negative numbers are marked, positive numbers are not)
  • ' (Specifies what to use as padding, default is a space. It must be used together with the width specifier. For example: %'x20s (using "x" as padding))
  • - (Left-adjusts the variable value)
  • [0-9] (Specifies the minimum width of the variable value)
  • .[0-9] (Specifies the number of decimal places or the maximum string length)

Note:If multiple of the above format values are used, they must be used in the order shown above and cannot be rearranged.

argarray Required. An array with arguments that will be inserted at the % signs in the format string.

Technical Details

Return value: Returns the length of the written string.
PHP version: 5+


More Examples

Example 1

Write some text to a file:

<?php
$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 2

Using placeholders:

<?php
$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

Example 3

Use printf() to demonstrate all possible format values:

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // The ASCII Character 50 is 2

// Note: The format value "%%" returns a percent sign
printf("%%b = %b <br>",$num1); // Binary number
printf("%%c = %c <br>",$char); // The ASCII Character
printf("%%d = %d <br>",$num1); // Signed decimal number
printf("%%d = %d <br>",$num2); // Signed decimal number
printf("%%e = %e <br>",$num1); // Scientific notation (lowercase)
printf("%%E = %E <br>",$num1); // Scientific notation (uppercase)
printf("%%u = %u <br>",$num1); // Unsigned decimal number (positive)
printf("%%u = %u <br>",$num2); // Unsigned decimal number (negative)
printf("%%f = %f <br>",$num1); // Floating-point number (local settings aware)
printf("%%F = %F <br>",$num1); // Floating-point number (not local settings aware)
printf("%%g = %g <br>",$num1); // Shorter of %e and %f
printf("%%G = %G <br>",$num1); // Shorter of %E and %f
printf("%%o = %o <br>",$num1); // Octal number
printf("%%s = %s <br>",$num1); // String
printf("%%x = %x <br>",$num1); // Hexadecimal number (lowercase)
printf("%%X = %X <br>",$num1); // Hexadecimal number (uppercase)
printf("%%+d = %+d <br>",$num1); // Sign specifier (positive)
printf("%%+d = %+d <br>",$num2); // Sign specifier (negative)
?>

Run Example »


PHP String 参考手册PHP String Reference Manual Other extensions