PHP sprintf() funktionen

Exempel

Erstätt procenttecknet (%) med en variabel som skickas som parameter:

<?php
$number = 2;
$str = "Shanghai";
txt = sprintf("Det finns 쥕joner bilar i %s.", $number, $str);
echo $txt;
?>

Kör en exempel

Definition och användning

sprintf() funktionen skriver formaterade strängar till variabler.

arg1,arg2,++ Parametrarna kommer att sättas in i huvudsträngen vid procenttecknen (%) symbolen. Funktionen är stegvis. I första % arg1, i andra % arg2, fortsätt på samma sätt.

Kommentar:Om det finns fler % arg Om det finns parametrar, måste du använda en placeholder. Placeholder placeras efter % och består av ett nummer och "\$". Se exempel 2.

Tips:Relaterade funktioner: printf(), vprintf(), vsprintf(), fprintf() och vfprintf()

Syntax

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

Obligatoriskt. Bestämmer strängen och hur variablerna i den ska formateras.

Möjliga formatvärden:

  • %% - Returnerar en procenttecken (%)
  • %b - Binärnummer
  • %c - ASCII-värdets tecken
  • %d - Dekimaltal med tecken (negativa, 0, positiva)
  • %e - Använd små bokstäver för vetenskaplig notation (t.ex. 1.2e+2)
  • %E - Använd stora bokstäver för vetenskaplig notation (t.ex. 1.2E+2)
  • 蒝ekimaltal utan tecken (minst 0)
  • %f - Flyttal (lokal inställning)
  • %F - Flyttal (inte lokal inställning)
  • %g - Kortare %e och %f
  • %G - Kortare %E och %f
  • %o - Octalnummer
  • %s - Sträng
  • %x - Hexadecimaltal (små bokstäver)
  • %X - Hexadecimaltal (stora bokstäver)

Ytterligare formatvärden. Obligatoriskt att placera mellan % och bokstav (t.ex. %.2f):

  • + (lägg till '+' eller '-' framför siffror för att definiera tecknet för positivt eller negativt. Som standard markeras endast negativa tal, inte positiva)
  • ' (bestämmer vad som ska användas som fyllnad, standard är blanksteg. Det måste användas tillsammans med breddindikatorn. Till exempel: '%'x20s (använd 'x' som fyllnad))
  • - (vänsterjustera variabelvärdet)
  • [0-9] (bestämmer den minsta bredden för variabelvärdet)
  • .[0-9] (bestämmer antalet decimaler eller max stränglängd)

Kommentar:Om flera av de ovanstående formatvärdena används, måste de användas i den ordning som anges ovan.

arg1 Obligatoriskt. Bestämmer vad som ska sättas in format Tecken i första positionen av %-tecknen i strängen.
arg2 Valfritt. Bestämmer vad som ska sättas in format Tecken i andra positionen av %-tecknen i strängen.
arg++ Valfritt. Bestämmer vad som ska sättas in format Tecken i tredje och fjärde positionen av %-tecknen i strängen.

技术细节

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

更多实例

例子 1

使用格式值 %f:

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

Kör en exempel

例子 2

使用占位符:

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

Kör en exempel

例子 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>"; // Sträng
echo sprintf("%%x = %x",$num1)."<br>"; // Hexadecimaltal (små bokstäver)
echo sprintf("%%X = %X",$num1)."<br>"; // Hexadecimaltal (stora bokstäver)
echo sprintf("%%+d = %+d",$num1)."<br>"; // Teckenindikator (positiv)
echo sprintf("%%+d = %+d",$num2)."<br>"; // Teckenindikator (negativ)
?>

Kör en exempel

Exempel 4

Demonstration av stränganvändare:

<?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>";
?>

Kör en exempel