sprintf只格式化不印出來
printf格式化後印出來
格式為printf("abcde%'a-20s fgh %01.2f ijk",$a,$b)
從%開始依序為
說明使用何種字元來填塞結果成為適當的字串長度,它可以是個空白字元或是 0(字元 0),
它預設上是使用空白來填塞。要替換填塞字元,可以在字首前面加上單引號( ' )來指定。
指定對齊方式,說明結果應該要靠左對齊還是靠右對齊,預設是靠右對齊,可以使用字元 "-" 來使它靠左對齊。
指定寬度,說明這個轉換要產生出多少(最少)字元。
指定精準度,說明要顯示到小數點第幾位,這個選項對於浮點數以外的型態沒有影響。
指定型態說明要將參數看待成何種型態,可能的型態有 :
% - 百分比字元,不需要參數
b - 將參數看待成整數,而且結果為二進制的值
c - 將參數看待成整數,而且結果為此ASCII值的字元
d - 將參數看待成整數,而且結果為十進位的數值
f - 將參數看待成浮點數,而且結果為浮點數
o - 將參數看待成整數,而且結果為八進制的數值
s - 將參數和結果都看待成字串
x - 將參數看待成整數,而且結果為十六進制的數值(小寫字母)
X - 將參數看待成整數,而且結果為十六進制的數值(大寫字母)
範例:
$a=13.1
printf("%010.2f",$a);
結果:0000000013.10
$b=abcd
printf("%'_-10s",$b);
結果:abcd______
備註:替代字元通常是空格,但列印出來卻無空格,是因為列印在網頁上會把空格省略
所以要加str_replace()函示,把空格轉成& nbsp;
以上面的範例改成str_replace(' ','& nbsp;',sprintf("%10s",$b));即可