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

PHP writes the formatted string into a variable using sprintf()

黄舟
黄舟Original
2017-11-03 09:48:002161browse

Example

Replace the percent sign (%) symbol with a variable passed as a parameter:

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

Definition and usage

sprintf() function changes the format The string is written into a variable.

arg1, arg2, ++ parameters will be inserted into the main string at the percent sign (%) symbol. This function is executed step by step. At the first % sign, insert arg1, at the second % sign, arg2, 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.

Tips: Related functions: printf(), vprintf(), vsprintf(), fprintf() and vfprintf()

Syntax

sprintf(format,arg1,arg2,arg++)
Required. Specifies the parameters to be inserted at the first % sign in the format string. Optional. Specifies the parameter to be inserted into the format string at the second % sign. Optional. Specifies the parameters to be inserted into the format string at the third, fourth, etc. % 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.

arg1
arg2
arg++

技术细节

返回值: 返回已格式化的字符串。
PHP 版本: 4+

更多实例

实例 1

使用格式值 %f:

<?php
$number = 123;
$txt = sprintf("%f",$number);
echo $txt;
?>

实例 2

使用占位符:

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

实例 3

所有可能的格式值的演示:

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

先举个最简单的案例

<?php
$str1="1234";

echo sprintf("hello%s","$str1");

//效果为: hello1234


?>

这什么意思呢

要点:

%s = %符号和后面属性符号(s)总称为插入标记组合,也就是把后面准备进行格式化的值($str1)替换在这个位置 

hello = 这个单词就是很多人蒙蔽的地方,告诉你这个什么代表也没有,就单纯的代表一个hello,用于分割或者修饰用,一般用[ %s ]、8f575e34f3b5e73f5def4db6e2da22c8这样格式化出来后就直接在标签里

记住,一个%标记符后面只有一个类型属性(比如s),s是什么上面有,以字符串的方式格式化


The above is the detailed content of PHP writes the formatted string into a variable using sprintf(). 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