トップへ(mam-mam.net/)

PHPでSPrintF、VPrintF、PrintF、Number_Format関数で整形(フォーマット) ~PHPサンプルソースコード集

検索:

PHPでSPrintF、VPrintF、PrintF、Number_Format関数で整形(フォーマット) ~PHPサンプルソースコード集

PHPで変数などの値を整形(フォーマット)するにはSPrintF関数や、VPrintF関数、PrintF関数、Number_Format関数を使う方法があります。
number_format関数を使った場合は

関数名 出力先
sprintf(フォーマット,値,値,・・・) 戻り値 echo sprintf("%9.3f",11.2);
   11.200
vprintf(フォーマット,配列) 標準出力(画面) vprintf("%9.3f",[11.2]);
   11.200
printf(フォーマット,値,値,・・・) 標準出力(画面) printf("%9.3f",11.2);
   11.200
number_format(値 [,小数点以下桁数])
1000単位でカンマ区切りを行い、
小数点以下桁数に丸める(四捨五入)
戻り値 (例)
echo number_format(1000.05);
1,000
(例)
echo number_format(1000.05, 1);
1,000.1

フォーマットについて

SPrintF関数や、VPrintF関数、PrintF関数の第1引数のフォーマットは以下の構文です。
"%[argnum$][flags][width][.precision]specifier"

argnum$(引数の番号[省略可能])
フォーマットに使用する引数の番号(1~引数の数まで)を指定できます。
(例)
echo sprintf("%2$9.3f, %1$9.3f", 1.2345, 2.3456, 3.4567);
2.346, 1.234
flag[省略可能]
左寄せや指定幅に対して埋める文字を指定したりできます。
フラグ 説明
- 左寄せにします。省略すると右寄せになります。
(例)
echo sprintf("%-'_9.3f", 1.2345);
1.234____
+ 正の数値の左に「+」を付けます。省略すると負の数値だけ「-」が付きます (例)
echo sprintf("%+9.3f", 1.2345);
+1.234
半角スペース 指定したwidth(幅)に埋め切れない箇所を半角スペースで埋めます。
これがデフォルトで省略可能です。
(例)
echo sprintf("%9.3f", 1.2345);
1.234
'任意の1文字 指定したwidth(幅)に埋め切れない箇所を指定した文字で埋めます。
省略すると半角スペースになります。
(例)
echo sprintf("%-+'_14.3f", 1.2345);
+1.234___
width(最小文字数の指定[省略可能])
値を(最小で)何文字で出力するかを指定します。小数値の場合は小数点も文字数に含まれます。
(例)
echo sprintf("%'_14.3f", 1.2345);
_________1.234
(例)
echo sprintf("%'_14.14f", 1.2345678901234);
1.23456789012340
.precision(小数以下の文字数の指定[省略可能])
小数以下何文字表示するかを指定します。
(例)
echo sprintf("%.20f", 1.2345);
1.23449999999999993072
(例)
echo sprintf("%20.3f", 1.23456);
1.235
specifier(指定子)
指定子 説明
% パーセント指定子。パーセント「%」文字を表示するだけです。
(例)
echo sprintf("%%", 1.2345);
%
b(2進数表示) 引数は整数として扱われ2進数として表現されます。
(例)
echo sprintf("%b", 21.2345);
10101
c(ASCII文字表現) 引数は整数として扱われ、指定した値のASCII文字が表現されます。
(例)10進数の77[16進数の 0x4B]は文字の「M」
echo sprintf("%c", 77);
M
d(整数) 引数は整数として扱われ、符号付10進数として表現されます。
(例)
echo sprintf("%d足す%dは%dです", 21, 24, 21+24);
21足す24は45です
(例)
echo sprintf("%2$+'08d %1$8d", 11, 22);
+0000022 11
e(指数表現) 引数は指数表現されます。
(例)
echo sprintf("%e足す%eは%eです", 210, 0.12345, 210+0.12345);
2.100000e+2足す1.234500e-1は2.101234e+2です
E(指数表現) 引数は指数表現されます。
(例)
echo sprintf("%E足す%Eは%Eです", 210, 0.12345, 210+0.12345);
2.100000E+2足す1.234500E-1は2.101234E+2です
f(小数) 引数は小数として扱われます。(ロケールを考慮)
(例)
/* ロケールをフランス語に設定 */
setlocale(LC_ALL, 'fr_FR.UTF8', 'fr.UTF8', 'fr_FR.UTF-8', 'fr.UTF-8');
echo sprintf("%f足す%fは%fです", 0.1, 0.2, 0.1+0.2);
0,100000足す0,200000は0,300000です
(↑小数点がドットではなくカンマ「,」になっている)
F(小数) 引数は小数として扱われます。(ロケールを考慮しない)
(例)
/* ロケールをフランス語に設定 */
setlocale(LC_ALL, 'fr_FR.UTF8', 'fr.UTF8', 'fr_FR.UTF-8', 'fr.UTF-8');
echo sprintf("%F足す%Fは%Fです", 0.1, 0.2, 0.1+0.2);
0.100000足す0.200000は0.300000です
(↑小数点がドットで表現されている)
o(8進数) 引数は整数として扱われ8進数表現されます
(例)
echo sprintf("%o", 256);
400
x(16進数小文字) 引数は整数として扱われ16進数(小文字)表現されます
(例)
echo sprintf("%x", 255);
ff
X(16進数大文字) 引数は整数として扱われ16進数(大文字)表現されます
(例)
echo sprintf("%X", 255);
FF
s(文字列) 引数は文字列として扱われ文字列として表現されます
(例)
echo sprintf("あいうえお%s", "かきくけこ");
あいうえおかきくけこ

PHPサンプル集一覧へ