PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのsprintf()関数とは?使い方と書式指定子を徹底解説

PHPのsprintf()関数は、指定した書式(フォーマット)に従って整形した文字列を生成・出力するために使用される関数です。数値や文字列を自由な形式で組み合わせたい場合に非常に便利で、実務でも頻繁に利用されます。

基本構文

sprintf(format, arg1, arg2, arg++)

第1引数には書式を定義した文字列を渡し、第2引数以降にはその書式に埋め込む値を順番に指定します。

パラメータの詳細

  • format − 出力する文字列と、その中で変数をどのようにフォーマットするかを指定します。

主な書式指定子の一覧

format引数では、以下のような書式指定子を使用できます。

  • %% − パーセント記号(%)そのものを返します

  • %b − 2進数として表示します

  • %c − ASCII値に対応する文字を返します

  • %d − 符号付き10進数(負の値・0・正の値)として表示します

  • %e − 小文字の指数表記による科学技術表記(例:1.2e+2)

  • %E − 大文字の指数表記による科学技術表記(例:1.2E+2)

  • %u − 符号なし10進数(0以上の値)として表示します

  • %f − 浮動小数点数として表示します(ロケール設定を考慮)

  • %F − 浮動小数点数として表示します(ロケール設定を考慮しない)

  • %g − %eと%fのうち、短い方を採用して表示します

  • %G − %Eと%fのうち、短い方を採用して表示します

  • %o − 8進数として表示します

  • %s − 文字列として表示します

  • %x − 16進数として表示します(英字は小文字)

  • %X − 16進数として表示します(英字は大文字)

  • argument1 − 書式文字列内の最初の%記号の位置に挿入される引数です。

  • argument2 − 書式文字列内の2番目の%記号の位置に挿入される引数です。以降も同様に、3つ目以降の引数が順番に対応します。

戻り値

sprintf()関数は、指定された書式に従って整形された文字列を返します。直接出力したい場合はechoなどと組み合わせて使用します。

使用例①:浮動小数点数への変換

以下は、整数値を浮動小数点数の形式に変換する基本的な例です。

<?php
   $val = 299;
   $txt = sprintf("%f", $val);
   echo $txt;
?>

出力結果

299.000000

%fを指定することで、整数「299」が小数点以下6桁の浮動小数点数「299.000000」として整形されていることがわかります。

使用例②:複数の書式指定子の活用

次に、%b(2進数)と%c(ASCII文字)を組み合わせた例を見てみましょう。

<?php
   $val = 768776;
   $char = 95;
   echo sprintf("%%b = %b", $val)."<br>";
   echo sprintf("%%c = %c", $char);
?>

出力結果

%b = 10111011101100001000
%c = _

この例では、「%%」によってリテラルのパーセント記号が出力され、768776は2進数「10111011101100001000」に、ASCIIコード95はアンダースコア「_」にそれぞれ変換されています。

まとめ

sprintf()関数を使いこなすことで、数値の桁揃えや進数変換、文字列の整形などを柔軟に行えます。特にログ出力や金額表示、IDのゼロ埋めなどの場面で活躍するため、各書式指定子の特徴を把握しておくと開発効率が大きく向上します。

  1. PHPのgregoriantojd()関数とは?構文・パラメータ・使用例を解説

    PHPのgregoriantojd()関数は、グレゴリオ暦(現在広く使われている暦)の日付をユリウス通日(Julian Day Count)に変換し、その結果としてユリウス日番号を返す関数です。ユリウス通日は、天文学や歴史上の日付計算などで利用される連続した日数表現であり、異なる暦同士の日付比較や計算を簡単に行えるのが特徴です。 注意 − グレゴリオ暦として有効な範囲は、紀元前4714年11月25日から紀元9999年12月31日以降までとなっています。この範囲外の日付を指定すると、正しい結果が得られない場合があります。 構文 GregorianToJD(month, date, year)

  2. PHPのfscanf()関数とは?使い方とフォーマット指定子を徹底解説

    PHPのfscanf()関数は、オープン中のファイルから入力を読み込み、指定されたフォーマットに従って解析するための関数です。パラメータを2つだけ渡して呼び出した場合、解析結果の値が配列として返されます。基本構文fscanf(file_pointer, format, mixed)パラメータの詳細file_pointer − fopen()関数を使って作成されたファイルシステムポインタリソースを指定します。format − 読み込むデータの形式(フォーマット)を指定します。使用できる主なフォーマット指定子は以下の通りです。%% − パーセント記号(%)そのものを返す%b − 2進数として読み込