【PHP】sprintf関数の使い方(文字列を任意の書式に変換する)
php3~ で使用できます。
sprintf関数 : 書式
sprintf(フォーマット [, 文字列, 文字列...])
戻り値:指定したフォーマットに変換された文字列
sprintf関数は、文字列を指定したフォーマットに変換します。すぐに出力する目的ではなく、加工した文字列を変数にセットして後処理で使える点が便利です。
- フォーマットに指定する文字列
% パーセント文字 b 引数を整数として扱いバイナリ値として出力 c 引数を整数として扱いASCII文字として出力 d 引数を整数として扱い10進数として出力 u 引数を整数として扱い符号なし10進数として出力 f 引数を浮動小数点として扱い浮動小数点として出力 o 引数を整数として扱い8進数として出力 s 引数を文字列として出力 x 引数を整数として扱い16進数として小文字で出力 X 引数を整数として扱い16進数として大文字で出力 数値 引数の表示桁数を指定 空白 指定桁数に満たない場合は空白で埋める 0 指定桁数に満たない場合は0で埋める
sprintf関数 : 使用例
- 文字列を変換する$str = "出身地は%sです";
$res = sprintf($str, "名古屋"); →変数$resに「出身地は名古屋です」をセット
- sprintf関数でSQL文を作成する$str = "INSERT INTO tbl_dra VALUES (%d, '%s');";
$res = sprintf($str, 11, "川上");変数$resにセットされる内容
INSERT INTO tbl_dra VALUES (11, '川上');
- 頭に0を埋めて8桁の文字列にする$jan = '1234567';
echo sprintf("%08d",$jan); →「01234567」を出力
sprintf関数 : 参考
- sprintf関数で同じ引数を何度か使用する$str = '%1$D月%2$d日~%1$D月%3$D日';
echo sprintf($str, 12 1 31); →「12月1日~12月31日」を出力<解説>
同じ引数を何度も使う場合や、順番が入れ替わる可能性がある場合は、「%1$d」のような指示子を使うと便利です。この指示子は、引数の型(例:d)の前に、何番目の引数を使うかを「%1$d」のような形式で付加したものです。この例でもsprintfでは「12」という引数は1度しか指定していませんが「%1$d」という指示子で2回出力しています。この指示子を使う場合、テンプレート文字列はシングルクォーテーション「'」で囲むことにしましょう。
関連リンク
PHPトップページ
PHP入門 & 関数リファレンス
PHPの初心者からベテランまで活用できるページです。初めての方はもちろん、もう一度基礎から学びなおしたい方は、基礎知識のページを順に読んで理解しましょう。ベテランの方向けには、関数の書式・パラメーターを調べられる構成になっています。PHPプログラム作成時にご活用下さい。