ITコラム

PHP sprintf

PHP

2019.05.24

PHP【文字列】sprintf でフォーマット

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 の使い方

最終更新日:2019年5月24日

目次

1.sprintf で指定するフォーマットを作成
2.sprintf のサンプル
3.sprintf で 0埋め
 

1.sprintf で指定するフォーマットを作成

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 進数の整数(大文字)

▲目次へ戻る

 

2.sprintf のサンプル

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 引数で指定した数値や文字列が挿入され、フォマットされた文字列が生成されました。

▲目次へ戻る

 

3.sprintf で 0埋め

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 が埋められています。

▲目次へ戻る

SHARE

最新記事

IMG_004

卒業生インタビュー

2019.08.20

【卒業生の声:渡邉さん】宮城の大学とプログラマカレッジへ通学を両立!限られた時間を有効活用し、希望するWEB系の会社へ内定。

受講スクール プログラマカレッジ 受講期間 3ヶ月間 料金 無料 就職先 某WEB系会社 プログラマカレッジ卒業生の渡邉さんにお話しをお伺いしました! 目次 新卒採用の切符を捨て、アイデアを形にできる仕事を目指す 質問が […]

続きを見る

DSC_3661

卒業生インタビュー

2019.08.16

【卒業生の声:前田さん】大学中退の未経験エンジニアが4社から内定獲得!初めての就活を成功させた秘訣とは?

受講スクール プログラマカレッジ 受講期間 3ヶ月間 料金 無料 就職先 株式会社リヴァンプ プログラマカレッジ卒業生のマエダさん(23歳)にお話しをお伺いしました! 目次 勉強に興味が持てなくて大学中退 就職できるか不 […]

続きを見る

DSC_0077

卒業生インタビュー

2019.08.08

【卒業生の声:オチアイさん】高校教師からプログラマーへ転身!最初の2ヶ月は理解に苦しむ日々。楽しめるまでに至った秘訣とは?

受講スクール プログラマカレッジ 受講期間 3ヶ月間 料金 無料 就職先 プライムソリューションズ株式会社 プログラマカレッジ卒業生のオチアイさんにお話しをお伺いしました! 目次 大学院卒業後は高校教師に そこから思い切 […]

続きを見る

無料相談する

INTERNOUS,inc. All rights reserved.