當前位置: 首頁> 函數類別大全> 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字符串中第三、四等% 符號處的參數。
同類函數
  • 單向字符串散列 crypt

    crypt

    單向字符串散列
  • 轉換十六進製字符串為二進製字符串 hex2bin

    hex2bin

    轉換十六進製字符串為二進製字符串
  • 替換字符串的子串 substr_replace

    substr_replace

    替換字符串的子串
  • strstr的別名 strchr

    strchr

    strstr的別名
  • 設置區域設置信息 setlocale

    setlocale

    設置區域設置信息
  • 重複一個字符串 str_repeat

    str_repeat

    重複一個字符串
  • 將CSV字符串解析為數組 str_getcsv

    str_getcsv

    將CSV字符串解析為數組
  • 查找指定字符在字符串中的最後一次出現 strrchr

    strrchr

    查找指定字符在字符串中的最後一次出現