|
sprintfは与えられた値を指定した書式に整列させる事が出来る便利な関数です。
現在の日付と時刻を例えば「2007/04/19 10:07:30」のように整列させて表示するには以下のように記述します。
|
|
($sec, $min, $hour, $day, $mon, $year, $week) = localtime(time);
$jst = sprintf("%04d/%02d/%02d %02d:%02d:%02d",
$year+1900, $mon+1, $day, $hour, $min, $sec);
print $jst;
|
|
最初の書式「%04d」には「$year+1900」が対応します。
次の書式「%02d」には「$mon+1」が対応します。
このように値が順に書式を整えながら格納されていきます。
$yearや$monに数値を加算していますが、これはlocaltime関数がこれらの数値を減算して値を返す為です。
sprintfの書式は「%[フラグ][型]」です。
ここでは一般的によく使われるものを紹介します。
|
|
0 ⇒ 後に指定した文字数になるまで頭に0を付与する。
空白 ⇒ 後に指定した文字数になるまで頭に空白を付与する。
+ ⇒ 正の値の時に頭に+を付与する。
- ⇒ 左詰めする。
|
|
d ⇒ 10進数。
s ⇒ 文字列。
c ⇒ 文字。
x ⇒ 16進数小文字(10進数を与えると変換される)。
X ⇒ 16進数大文字(10進数を与えると変換される)。
o ⇒ 8進数(10進数を与えると変換される)。
|
|
print sprintf("シリアルNo = %06d", 31);
「シリアルNo = 000031」と表示。
|
|
print sprintf("%+d", 10);
「+10」と表示。
|
|
print sprintf("%X", 255);
「FF」と表示。
|
|
print sprintf("%.4f", 3.1415926);
「3.1416」と表示。
小数点第5位を四捨五入して小数点以下4桁の小数に丸めます。
|
|
|
この他にもsprintfのフラグや型には様々なものがあります。
必要に応じて勉強して下さい。
|
|
■補足
上記では全てsprintfを使用していますがprintfを使用すると整列した結果をそのまま表示する事が可能です。
|
|
□更新履歴
2007.04.23 全体的に内容を見直し
2006.01.10 補足を追加
|
|
|