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

ITコラムのおすすめ記事

最新記事

無料相談する

INTERNOUS,inc. All rights reserved.