2011年6月9日 星期四

php的sprintf()使用方式

php中字串格式化函數sprintf()用法簡介:

語法:string sprintf(string format, mixed [args]...);
返回值:字串

[函數說明]

本函數用來將字串格式化。參數format是轉換的格式,以百分比符號%開始到轉換字元為止。而在轉換的格式間依序包括了:

1.填空字元:0的話表示空格填0;空格是內定值,表示空格就放著。
2.對齊方式:內定值為向右對齊,負號表向左對齊。
3.欄位寬度:為最小寬度。
4.精確度:指在小數點後的浮點數位數。

型態,轉換字元:

% 印出百分比符號,不轉換。
b 整數轉成二進位元。
c 整數轉成對應的 ASCII 字元。
d 整數轉成十進位元。
f 倍精確度數字轉成浮點數。
o 整數轉成八進位元。
s 整數轉成字串。
x 整數轉成小寫十六進位。
X 整數轉成大寫十六進位。

例子:

   1: <?php
   2:  
   3: $money1 = 68.25;
   4: $money2 = 54.35;
   5: $money = $money1 + $money2;
   6: // 此時變數 $money 值為 "123.1";
   7: $formatted = sprintf ("%01.2f", $money);
   8: // 此時變數 $ formatted 值為 "123.10"
   9:  
  10: ?>

這個%01.2f是什麼意思呢?

首先這個%符號是開始的意思,他寫在最前面表示指定格式要開始了。也就是「起始字元」,直到出現「轉換字元」為止,就算格式終止。然後跟在%符號後面的是0這個零是「填空字元」表示,如果位置空著就用0來填滿。

在0後面的是1這個1是規定小數點前面的數字占位元要有1位以上。

如果把1改成2如果$money的值為1.23,則$formatted的值將變為01.23。因為,在小數點前面的數字只占了1位元,按照上面所規定的格式,小數點前數字應該占2位元,現在只有1位,所以用0來填滿。

在%01後面的.2就很好理解了,它的意思是規定小數點後的數字必需占2位元。如果這時候,$money的值為1.234,則$formatted的值將為1.23。為什麼4不見了呢?因為按照上面的規定,在小數點後面必需且僅能占2位。可是$money的值中,小數點占了3位,所以4被去掉了,只剩下23。

最後,以f轉換字元結尾,其他轉換字元請自行參考上面的轉換字元清單。

[關於對齊]

如果在%起始符號後面加上-(負號),將會把數位以向右對齊的方式進行處理。

看下面實例:



   1: <?php
   2:  
   3: $money = 1.4;
   4: $formatted = sprintf ("%-02.2f", $money);
   5: echo $formatted;
   6:  
   7: ?>
這時候,$formatted將不會再是01.40 而是1.400。

2011年6月3日 星期五

回上一頁表單清空

http://yachi.idv.tw/blog/archives/2005/01/07/66

在[PHP]:
header(”Cache-Control: no-store, no-cache, must-revalidate”);
header(”Cache-Control: post-check=0, pre-check=0″, false);

在[ASP]:
meta http-equiv=”Pragma” content=”no-cache”
meta http-equiv=”Cache-Control” content=”no-cache”
meta http-equiv=”Expires” content=”0″