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

黄舟
Release: 2023-03-16 22:52:02
Original
2159 people have browsed it

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;
?>
Copy after login

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++)
Copy after login
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.
ParametersDescription
formatRequired. 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;
?>
Copy after login

实例 2

使用占位符:

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

实例 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)
?>
Copy after login

先举个最简单的案例

<?php
$str1="1234";

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

//效果为: hello1234


?>
Copy after login

这什么意思呢

要点:

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

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

记住,一个%标记符后面只有一个类型属性(比如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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template