PHP vsprintf() Function
The PHP vsprintf() function returns a string produced according to the specified format. If format includes format specifiers (sub-sequences beginning with %), the values from array argument following format are formatted and inserted in the resulting string replacing their respective specifiers.
After the format parameter, the function expects additional argument as an array containing values at least as many as the number of format specifiers in the format string.
Syntax
vsprintf(format, arguments)
Parameters
format |
Additional format values can be placed between the % and the specifier (e.g. %.3f). The possible values which can be placed in between are:
Note: If multiple additional format values are provided, they must be in %[flags][width][.precision]specifier order. | ||||||||||||||||||||||||||||||||||||
arguments |
Required. Depending on the format string, specify an array containing values to replace the format specifiers in the format string. Number of arguments should be at least equal to the number of format specifiers in the format string. Additional arguments will be ignored by this function. |
Return Value
Returns array values as a formatted string according to format.
Example: different specifiers
In the example below, formatted strings are produced using this function and displayed using echo function.
<?php $n = array(5000); $u = array(-5000); $c = array(66); // ASCII 66 is 'B' //%% is used to print '%' character echo vsprintf("%%b = %b\n", $n); //binary echo vsprintf("%%c = %c\n", $c); //ASCII character echo vsprintf("%%d = %d\n", $n); //integer echo vsprintf("%%e = %e\n", $n); //scientific notation echo vsprintf("%%u = %u\n", $n); //unsigned integer (+ve number) echo vsprintf("%%u = %u\n", $u); //unsigned integer (-ve number) echo vsprintf("%%f = %f\n", $n); //floating point echo vsprintf("%%o = %o\n", $n); //octal echo vsprintf("%%s = %s\n", $n); //string echo vsprintf("%%x = %x\n", $n); //hexadecimal (lowercase) echo vsprintf("%%X = %X\n", $n); //hexadecimal (uppercase) echo vsprintf("%%+d = %+d\n", $n); //sign specifier (+ve number) echo vsprintf("%%+d = %+d\n", $u); //sign specifier (-ve number) ?>
The output of the above code will be:
%b = 1001110001000 %c = B %d = 5000 %e = 5.000000e+3 %u = 5000 %u = 18446744073709546616 %f = 5000.000000 %o = 11610 %s = 5000 %x = 1388 %X = 1388 %+d = +5000 %+d = -5000
Example: using multiple % signs
In the example below, multiple % signs are used to place multiple additional arguments in the returned string.
<?php $info = array('John', 25); echo vsprintf("%s is %d years old.\n", $info); //using precision format echo vsprintf("%s is %.2f years old.\n", $info); ?>
The output of the above code will be:
John is 25 years old. John is 25.00 years old.
Example: format a date string
In the example below, this function is used to return formatted date string.
<?php $date1 = array(2015, 5, 1); $date2 = '2018-10-25'; //each format specifier specifies padding //with 0 and width of the field echo vsprintf("%04d-%02d-%02d", $date1); echo "\n"; echo vsprintf("%04d-%02d-%02d", explode('-', $date2)); ?>
The output of the above code will be:
2015-05-01 2018-10-25
Example: string specifiers
Consider one more example to see how to use string specifiers with a given string.
<?php $x = array('catfish'); $y = array('many catfishes'); echo vsprintf("[%s]\n", $x); //standard string output echo vsprintf("[%10s]\n", $x); //right-justification with spaces echo vsprintf("[%-10s]\n", $x); //left-justification with spaces echo vsprintf("[%010s]\n", $x); //zero-padding works on strings too echo vsprintf("[%'#10s]\n", $x); //using custom padding character '#' echo vsprintf("[%10.8s]\n", $y); //right-justification (8 characters cutoff) echo vsprintf("[%-10.8s]\n", $y); //left-justification (8 characters cutoff) ?>
The output of the above code will be:
[catfish] [ catfish] [catfish ] [000catfish] [###catfish] [ many cat] [many cat ]
❮ PHP String Reference