PHP sprintf() Function

Mga Halimbawa

Palitan ang simbolo ng porsyento (%), ng isang variable na ipapasa bilang argumento:

<?php
$number = 2;
$str = "Shanghai";
$txt = sprintf("Mayroon 쥕yong sasakyan sa %s.", $number, $str);
echo $txt;
?>

Run Example

Definition and usage

Ang sprintf() function ay nagpapatnugot ng format na string sa variable.

arg1,arg2,++ Ang parameter ay ilalagay sa simbolo (%) ng pangunahing string. Ang function na ito ay tumutuloy na pinalilipat. arg1, ilagay sa pangalawang % simbolo arg2, at pagpapatuloy na ito.

Komentaryo:Kung mayroong higit sa % simbolo arg Kung mayroong parameter, dapat gamitin ang placeholder. Ang placeholder ay nasa likod ng simbolo %, binubuo ng numero at "\$". Tingnan ang halimbawa 2.

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

Syntax

sprintf(format,arg1,arg2,arg++)
Parameter Description
format

Hinihingi. Tukuyin ang string at kung paano formatin ang mga variable nito.

Possible format values:

  • %% - Return a percentage sign %
  • %b - Binary number
  • %c - Character corresponding to ASCII value
  • %d - Decimal number with sign (negative, 0, positive)
  • %e - Use lowercase scientific notation (e.g., 1.2e+2)
  • %E - Use uppercase scientific notation (e.g., 1.2E+2)
  • 蒝ecimal number without sign (greater than or equal to 0)
  • %f - Floating-point number (local setting)
  • %F - Floating-point number (non-local setting)
  • %g - Shorter %e and %f
  • %G - Shorter %E and %f
  • %o - Octal number
  • %s - String
  • %x - Hexadecimal number (lowercase letters)
  • %X - Hexadecimal number (uppercase letters)

Dagdag na format value. Hinihingi na ilagay sa pagitan ng % at ang titik-Han (halimbawa: %.2f):

  • + (Magdagdag ng '+' o '-' sa harap ng numero upang tukuyin ang positibong o negatibong katangian ng numero. Sa kasalukuyan, lamang ang negatibong numero ang may marka, ang positibong numero ay walang marka)
  • ' (Tukuyin kung anong gamitin bilang puno, default ay espasyo. Dapat magamit kasama ang pinagmumulan ng lapad. Halimbawa: '%'x20s (Ginamit ang 'x' bilang puno))
  • - (Ayusin ang kanan ang halaga ng variable)
  • [0-9] (Tukuyin ang pinakamaliit na lapad ng halaga ng variable)
  • .[0-9] (Tukuyin ang bilang ng desimal o pinakamataas na haba ng string)

Komentaryo:Kung mayroong maraming format value na ginamit, dapat nilagay nila ayon sa pagkakasunod-sunod na ito.

arg1 Hinihingi. Tukuyin kung ilagay sa format String na may % sa unang lugar ng simbolo %.
arg2 Opisyal. Tukuyin kung ilagay sa format String na may % sa ikalawang lugar ng simbolo %.
arg++ Opisyal. Tukuyin kung ilagay sa format String na may % sa ikatlong, ikatlong at ikatlong na lugar ng simbolo %.

技术细节

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

更多实例

例子 1

使用格式值 %f:

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

Run Example

例子 2

使用占位符:

<?php
$number = 123;
$txt = sprintf("带两位小数:%1\$.2f
<br>不带小数:%1\$u",$number);
echo $txt;
?>

Run Example

例子 3

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

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII 字符 50 是 2
// 注释:格式值 "%%" 返回百分号
echo sprintf("%%b = %b",$num1)."<br>"; // 二进制数
echo sprintf("%%c = %c",$char)."<br>"; // ASCII 字符
echo sprintf("%%d = %d",$num1)."<br>"; // 带符号的十进制数
echo sprintf("%%d = %d",$num2)."<br>"; // 带符号的十进制数
echo sprintf("%%e = %e",$num1)."<br>"; // 科学计数法(小写)
echo sprintf("%%E = %E",$num1)."<br>"; // 科学计数法(大写)
echo sprintf("%鑾u",$num1)."<br>"; // 不带符号的十进制数(正)
echo sprintf("%鑾u",$num2)."<br>"; // 不带符号的十进制数(负)
echo sprintf("%%f = %f",$num1)."<br>"; // 浮点数(视本地设置)
echo sprintf("%%F = %F",$num1)."<br>"; // 浮点数(不视本地设置)
echo sprintf("%%g = %g",$num1)."<br>"; // 短于 %e 和 %f
echo sprintf("%%G = %G",$num1)."<br>"; // 短于 %E 和 %f
echo sprintf("%%o = %o",$num1)."<br>"; // 八进制数
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>"; // Positive Sign Symbol
echo sprintf("%%+d = %+d",$num2)."<br>"; // Negative Sign Symbol
?>

Run Example

Example 4

Demonstration of String Literals:

<?php
$str1 = "Hello";
$str2 = "Hello world!";
echo sprintf("[%s]",$str1)."<br>";
echo sprintf("[%8s]",$str1)."<br>";
echo sprintf("[%-8s]",$str1)."<br>";
echo sprintf("[%08s]",$str1)."<br>";
echo sprintf("[%'*8s]",$str1)."<br>";
echo sprintf("[%8.8s]",$str2)."<br>";
?>

Run Example