Blog : PHP vprintf() Function

PHP vprintf() Function

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

Definition and Usage
The vprintf() function outputs a formatted string.

Unlike printf(), the arguments in vprintf(), 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.

Syntax
vprintf(format,argarray)  

Parameter Description
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(), vfprintf(), and vsprintf().


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

Example 1
$str = "Hello";
$number = 123;
vprintf("%s world. Day number %u",array($str,$number));
?>  

The output of the code above will be:

Hello world. Day number 123  


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

Example 2
$num1 = 123;
$num2 = 456;
vprintf("%f%f",array($num1,$num2));
?>  

The output of the code above will be:

123.000000456.000000  


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

Example 3
Use of placeholders:

$number = 123;
vprintf("With 2 decimals: %1\$.2f

With no decimals: %1\$u",array($number));
?>  

The output of the code above will be:

With 2 decimals: 123.00 With no decimals: 123