Home >Backend Development >PHP Tutorial >PHP writes the formatted string into a variable using the function vsprintf()

PHP writes the formatted string into a variable using the function vsprintf()

黄舟
黄舟Original
2017-11-07 09:21:191713browse

Example

Write the formatted string into the variable:

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

Definition and usage

vsprintf() function writes the formatted string into the variable.

Unlike sprintf(), the parameters in vsprintf() are in an array. Array elements will be inserted into the main string at the percent sign (%). 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 % symbols than arg arguments, you must use placeholders. The placeholder is inserted after the % symbol and consists of a number and "\$". See Example 2.

Tip: Related functions: fprintf(), vfprintf(), printf(), sprintf() and vprintf()

Syntax

vsprintf(format,argarray)
Required. An array with parameters to be inserted into the format string at % symbols.
Parameters Description
format Required. Specifies a string and how to format variables within it.

Possible format values:

  • %% - returns a percent sign %

  • %b - a binary number

  • %c - the character corresponding to the ASCII value

  • %d - the decimal number containing the sign (negative, 0, positive)

  • %e - Use lowercase scientific notation (e.g. 1.2e+2)

  • ##%E - Use uppercase scientific notation (e.g. 1.2E+ 2)

  • %u - Decimal number without sign (greater than or equal to 0)

  • %f - Floating point number (local setting) )

  • %F - floating point number (non-native setting)

  • ##%g - shorter %e and %f
  • %G - shorter %E and %f
  • ##%o - octal number
  • %s - character String
  • %x - Hexadecimal number (lowercase letters)
  • ##%X - Hexadecimal number (uppercase letters)

  • Additional format value. Must be placed between % and a letter (e.g. %.2f):

+ (Add + or - in front of a number to define the sign of the number. By default, only Negative numbers are marked, positive numbers are not marked)

  • ' (Specifies what to use as padding, the default is spaces. It must be used with the width specifier. For example: %'x20s ( Use "x" as padding))

  • - (Adjust the variable value left)

  • [0-9] (Specify the minimum variable value Width)

  • .[0-9] (Specifies the number of decimal places or the maximum string length)

  • Note: If you use more than one of the above The format values ​​must be used in the order above and cannot be disrupted.

argarray

技术细节

返回值: 以格式化字符串的形式返回数组值。
PHP 版本: 4.1.0+

更多实例

实例 1

使用格式值 %f:

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

实例 2

使用占位符:

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

实例 3

使用 sprintf() 来演示所有可能的格式值:

<?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)
?>

实例 4

字符串说明符的演示:

<?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("[%&#39;*8s]",array($str1))."<br>";
echo vsprintf("[%8.8s]",array($str2))."<br>"; 
?>


The above is the detailed content of PHP writes the formatted string into a variable using the function vsprintf(). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn