sprintf
返回格式化的字符串
sprintf()
函數把格式化的字符串寫入變量中。
arg1 、 arg2 、 ++參數將被插入到主字符串中的百分號(%)符號處。該函數是逐步執行的。在第一個% 符號處,插入arg1 ,在第二個% 符號處,插入arg2 ,依此類推。
註釋:如果% 符號多於arg參數,則您必須使用佔位符。佔位符位於% 符號之後,由數字和"\$" 組成。請參見例子2。
fprintf()
printf()
vfprintf()
vprintf()
vsprintf()
把百分號(%)符號替換成一個作為參數進行傳遞的變量:
<?php $number = 2 ; $str = "Shanghai" ; $txt = sprintf ( "There are %u million cars in %s." , $number , $str ) ; echo $txt ; ?>
親自試一試
使用格式值%f:
<?php $number = 123 ; $txt = sprintf ( "%f" , $number ) ; echo $txt ; ?>
親自試一試
使用佔位符:
<?php $number = 123 ; $txt = sprintf ( "帶兩位小數:%1\$.2f <br>不帶小數:%1\$u" , $ number ) ; echo $txt ; ?>
親自試一試
對所有可能的格式值的演示:
<?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>" ; // 符號說明符(負) ?>
親自試一試
對字符串說明符的演示:
<?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 |
必需。規定字符串以及如何格式化其中的變量。 可能的格式值:
附加的格式值。必需放置在% 和字母之間(例如%.2f):
註釋:如果使用多個上述的格式值,它們必須按照以上順序使用。 |
arg1 | 必需。規定插到format字符串中第一個% 符號處的參數。 |
arg2 | 可選。規定插到format字符串中第二個% 符號處的參數。 |
arg++ | 可選。規定插到format字符串中第三、四等% 符號處的參數。 |