PHP vsprintf()Functions

PHP String 参考手册PHP String Reference Manual

Examples

Write a formatted string to a variable:

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

Run Example »

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 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 parameters, you must use placeholders. The placeholder is inserted after the % sign and consists of a number and "\$". See Example 2.

Tip:Related functions:fprintf()、 vfprintf()、 printf()、 sprintf()andvprintf()


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 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 (local settings)
  • %F - Floating-point number (non-local settings)
  • %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, the default is a space. It must be used together with the width specifier. For example: %'x20s (uses "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 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 array values as a formatted string.
PHP Version: 4.1.0+


More Examples

Example 1

Using format value %f:

<?php
$num1 = 123;
$num2 = 456;
$txt = vsprintf("%f%f",array($num1,$num2));
echo $txt;
?>

Run Example »

Example 2

Using placeholders:

<?php
$number = 123;
$txt = vsprintf("With 2 decimals: %1$.2f
<br>With no decimals: %1$u",array($number));
echo $txt;
?>

Run Example »

Example 3

Using sprintf() 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
echo sprintf("%%b = %b",$num1)."<br>"; // Binary number
echo sprintf("%%c = %c",$char)."<br>"; // The ASCII Character
echo sprintf("%%d = %d",$num1)."<br>"; // Signed decimal number
echo sprintf("%%d = %d",$num2)."<br>"; // Signed decimal number
echo sprintf("%%e = %e",$num1)."<br>"; // Scientific notation (lowercase)
echo sprintf("%%E = %E",$num1)."<br>"; // Scientific notation (uppercase)
echo sprintf("%%u = %u",$num1)."<br>"; // Unsigned decimal number (positive)
echo sprintf("%%u = %u",$num2)."<br>"; // Unsigned decimal number (negative)
echo sprintf("%%f = %f",$num1)."<br>"; // Floating-point number (local settings aware)
echo sprintf("%%F = %F",$num1)."<br>"; // Floating-point number (not local sett aware)
echo sprintf("%%g = %g",$num1)."<br>"; // Shorter of %e and %f
echo sprintf("%%G = %G",$num1)."<br>"; // Shorter of %E and %f
echo sprintf("%%o = %o",$num1)."<br>"; // Octal number
echo sprintf("%%s = %s",$num1)."<br>"; // String
echo sprintf("%%x = %x",$num1)."<br>"; // Hexadecimal number (lowercase)
echo sprintf("%%X = %X",$num1)."<br>"; // Hexadecimal number (uppercase)
echo sprintf("%%+d = %+d",$num1)."<br>"; // Sign specifier (positive)
echo sprintf("%%+d = %+d",$num2)."<br>"; // Sign specifier (negative)
?>

Run Example »

Example 4

Demonstration of string specifiers:

<?php
$str1 = "Hello";
$str2 = "Hello world!";

echo vsprintf("[%s]",array($str1))."<br>";
echo vsprintf("[%8s]",array($str1))."<br>";
echo vsprintf("[%-8s]",array($str1))."<br>";
echo vsprintf("[%08s]",array($str1))."<br>";
echo vsprintf("[%'*8s]",array($str1))."<br>";
echo vsprintf("[%8.8s]",array($str2))."<br>";
?>

Run Example »


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