Blog : PHP vsprintf() Function
PHP vsprintf() Function
--------------------------------------------------------------------------------
Complete PHP String Reference
--------------------------------------------------------------------------------
Definition and Usage
The vsprintf() function writes a formatted string to a variable.
Unlike sprintf(), the arguments in vsprintf(), 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
vsprintf(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 vprintf().
--------------------------------------------------------------------------------
Example 1
$str = "Hello";
$number = 123;
$txt = vsprintf("%s world. Day number %u",array($str,$number));
echo $txt;
?>
The output of the code above will be:
Hello world. Day number 123
--------------------------------------------------------------------------------
Example 2
$num1 = 123;
$num2 = 456;
$txt = vsprintf("%f%f",array($num1,$num2));
echo $txt;
?>
The output of the code above will be:
123.000000456.000000
--------------------------------------------------------------------------------
Example 3
Use of placeholders:
$number = 123;
$txt = vsprintf("With 2 decimals: %1\$.2f
With no decimals: %1\$u",array($number));
echo $txt;
?>
The output of the code above will be:
With 2 decimals: 123.00
With no decimals: 123