PHP では、sprintf 関数で 自由に文字列をフォーマットすることができます。
今回は sprintf 関数の使用方法を紹介します。
PHP【文字列】文字列の連結
PHP【文字列】explode で文字列を分割
PHP【文字列】str_replace で文字列を置換
PHP【文字列】文字列の検索
PHP【文字列】文字列の比較
PHP【文字列】substr で文字列の抽出
PHP【文字列】数値に変換
PHP【文字列】strlen で文字列の長さを取得
PHP【文字列】trim で空白を削除
PHP【文字列】sprintf でフォーマット(本ページ)
本サイトでは XAMPP( ザンプ )という開発環境を使用しています。
XAMPP のインストール方法や起動方法については以下の記事をご参照下さい。
PHP【 開発環境 】XAMPP インストール
PHP【 開発環境 】XAMPP の使い方
なお、未経験からITエンジニアへの就職に興味がある方や未経験からプログラミングを効率よく学びたいと考えている方は、就職率98.3%で受講料無料のプログラミングスクールプログラマカレッジもおすすめです。
最終更新日:2019年5月24日
sprintf 関数は、自由に設定したフォーマットで成形した文字列を返す関数です。
次のように記述して使用します。
sprintf(フォーマット文字列, 挿入文字列(又は数値), 挿入文字列(又は数値), ...);
第 1 引数に フォーマット文字列を指定し、第 2 引数以降に フォーマットに挿入する文字列(又は数値)を指定します。
フォーマット文字列は、sprintf 関数の第 2 引数以降で指定する文字列(又は数値)が挿入される部分を「 %s 」や「 %d 」で表して、次のように作成します。
"今日は %d 月 %d 日、お天気は %s です。"
上のサンプルでは、挿入箇所が 3 カ所あるので、sprintf 関数の第 2 引数から第 4 引数に 挿入文字列(又は数値)を指定します。
このように、フォーマット文字列内の挿入部分は「 % 」で判別しますが、それに続く「 s 」は文字列、「 d 」は 10 進数の整数を意味しています。
ですので、上のサンプルをフォーマット文字列として sprintf 関数を使用する場合、第 2 引数及び第 3 引数には数値を、第 4 引数には文字列をそれぞれ指定することになります。
フォーマット文字列内で使用する挿入部分のデータ型の種類は、「 s 」や「 d 」以外にも次の様なものがあります。
b:2 進数の整数
c:ASCII 値に対応する整数
d:10 進数の整数
e:指数部をeで表す指数表記 (ex. 1.23e+12)
E:指数部をEで表す指数表記 (ex. 1.23E+12)
f:double 型の浮動小数点数
F:float 型の浮動小数点数
g:%e 、%f の短縮形
G:%E 、%F の短縮形
o:8 進数の整数
s:文字列
u:符号無しの 10 進数の整数
x:16 進数の整数(小文字)
X:16 進数の整数(大文字)
sprintf 関数を使用して、あるフォーマットで文字列を生成してみます。
下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)
<?php
$format = "【ID:%d、PW:%s、秘密の答え:%s】で登録しました。";
echo sprintf($format, 2019801, "deF13uh", "りんご");
echo "<br>";
echo sprintf($format, 2019733, "A6gyj9D", "則竹");
?>
「 echo 」は、データを出力するために使用する PHP の命令です。
フォーマット文字列内の挿入部分 3 カ所に、sprintf 関数の第 2 引数から第 4 引数で指定した数値や文字列が挿入され、フォマットされた文字列が生成されました。
sprintf 関数を使用し、0 埋めでフォーマットすることもできます。
0 埋めをする場合は、桁数を「 %0 」と「 d 」で挟んで「 %09d 」のように記述し、この例では合計で 9 桁になるまで左側に 0 が埋められます。
実際に sprintf 関数を使用して 0 埋めをしてみます。
下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)
<?php
echo sprintf("%07d", 6);
echo "<br>";
echo sprintf("%07d", 539);
echo "<br>";
echo sprintf("%07d", 1234567);
echo "<br>";
echo sprintf("%07d", 36728);
?>
「 echo 」は、データを出力するために使用する PHP の命令です。
上のサンプルでは「 %07d 」として 7 桁を指定しているので、sprintf 関数の第 2 引数で指定した数値が 合計で 7 桁になるまで左側に 0 が埋められています。
INTERNOUS,inc. All rights reserved.