當前位置: 首頁> 函數類別大全> sprintf

sprintf

返回格式化的字符串
名稱:sprintf
分類:字符串
所屬語言:php
一句話介紹:把格式化的字符串寫入變量中。

定義和用法

sprintf()函數把格式化的字符串寫入變量中。

arg1arg2++參數將被插入到主字符串中的百分號(%)符號處。該函數是逐步執行的。在第一個% 符號處,插入arg1 ,在第二個% 符號處,插入arg2 ,依此類推。

註釋:如果% 符號多於arg參數,則您必須使用佔位符。佔位符位於% 符號之後,由數字和"\$" 組成。請參見例子2。

相關函數:

  • fprintf()
  • printf()
  • vfprintf()
  • vprintf()
  • vsprintf()

實例

例子1

把百分號(%)符號替換成一個作為參數進行傳遞的變量:

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

親自試一試

例子2

使用格式值%f:

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

親自試一試

例子3

使用佔位符:

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

親自試一試

例子4

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

 <?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 = %u" , $num1 ) . "<br>" ; // 不帶符號的十進制數(正)
echo sprintf ( "%%u = %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>" ; // 字符串
echo sprintf ( "%%x = %x" , $num1 ) . "<br>" ; // 十六進制數(小寫)
echo sprintf ( "%%X = %X" , $num1 ) . "<br>" ; // 十六進制數(大寫)
echo sprintf ( "%%+d = %+d" , $num1 ) . "<br>" ; // 符號說明符(正)
echo sprintf ( "%%+d = %+d" , $num2 ) . "<br>" ; // 符號說明符(負)
?>

親自試一試

例子5

對字符串說明符的演示:

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

親自試一試

文法

sprintf ( format , arg1 , arg2 , arg ++ )
參數 描述
format

必需。規定字符串以及如何格式化其中的變量。

可能的格式值:

  • %% - 返回一個百分號%
  • %b - 二進制數
  • %c - ASCII 值對應的字符
  • %d - 包含正負號的十進制數(負數、0、正數)
  • %e - 使用小寫的科學計數法(例如1.2e+2)
  • %E - 使用大寫的科學計數法(例如1.2E+2)
  • %u - 不包含正負號的十進制數(大於等於0)
  • %f - 浮點數(本地設置)
  • %F - 浮點數(非本地設置)
  • %g - 較短的%e 和%f
  • %G - 較短的%E 和%f
  • %o - 八進制數
  • %s - 字符串
  • %x - 十六進制數(小寫字母)
  • %X - 十六進制數(大寫字母)

附加的格式值。必需放置在% 和字母之間(例如%.2f):

  • + (在數字前面加上+ 或- 來定義數字的正負性。默認情況下,只有負數才做標記,正數不做標記)
  • ' (規定使用什麼作為填充,默認是空格。它必須與寬度指定器一起使用。例如:%'x20s(使用"x" 作為填充))
  • - (左調整變量值)
  • [0-9] (規定變量值的最小寬度)
  • .[0-9] (規定小數位數或最大字符串長度)

註釋:如果使用多個上述的格式值,它們必須按照以上順序使用。

arg1 必需。規定插到format字符串中第一個% 符號處的參數。
arg2 可選。規定插到format字符串中第二個% 符號處的參數。
arg++ 可選。規定插到format字符串中第三、四等% 符號處的參數。
同類函數
  • 將一個一維數組的值轉化為字符串 implode

    implode

    將一個一維數組的值轉化為字符串
  • 對字符串執行rot13轉換 str_rot13

    str_rot13

    對字符串執行rot13轉換
  • 反轉一個字符串 strrev

    strrev

    反轉一個字符串
  • 將字符串解析成多個變量 parse_str

    parse_str

    將字符串解析成多個變量
  • 將邏輯順序希伯來文(logical-Hebrew)轉換為視覺順序希伯來文(visual-Hebrew) hebrev

    hebrev

    將邏輯順序希伯來文(logical-He
  • 刪除字符串末端的空白字符(或者其他字符) rtrim

    rtrim

    刪除字符串末端的空白字符(或者其他字符)
  • 從字符串的開頭刪除空格(或其他字符) ltrim

    ltrim

    從字符串的開頭刪除空格(或其他字符)
  • 二進制安全比較字符串開頭的若干個字符 strncmp

    strncmp

    二進制安全比較字符串開頭的若干個字符