fprintf関数

関数 fprintf は指定されたテンプレートに従って文字列をフォーマットし、結果をファイルストリームに書き込みます。第一引数にファイルリソース、第二引数にフォーマット文字列、それ以降の引数にテンプレートに挿入する値を取ります。ファイルリソースの代わりに null を渡すと、ストリームへの書き込みではなく文字列を返します。

フォーマット文字列では、記号 % で始まる特殊文字(フォーマット指定子)が使用され、出力のフォーマットを制御します。

構文

phpfprintf(resource $handle, string $format, mixed ...$values): int|false

フォーマット指定子

指定子 説明
%s 文字列
%d 符号付き整数(10進数)
%u 符号なし整数(10進数)
%f 浮動小数点数(ロケール依存)
%F 浮動小数点数(ロケール非依存)
%c ASCIIコードによる文字
%x 整数(16進数、小文字)
%X 整数(16進数、大文字)
%o 整数(8進数)
%b 整数(2進数)
%e 科学的記数法(小文字)
%E 科学的記数法(大文字)
%g %eまたは%fの短縮形
%G %Eまたは%Fの短縮形
%% パーセント記号

例

フォーマット済み文字列をファイルに書き込む:

php<?php
  $file = fopen('output.txt', 'w');
  fprintf($file, "Name: %s, Age: %d", "John", 25);
  fclose($file);
?>

ファイルoutput.txtの内容:

php'Name: John, Age: 25'

例

異なるフォーマット指定子の使用:

php<?php
  $res = fopen('php://temp', 'w');
  fprintf($res, "Float: %.2f, Hex: %x", 12.3456, 255);
  rewind($res);
  echo stream_get_contents($res);
  fclose($res);
?>

コード実行結果:

php'Float: 12.35, Hex: ff'

例

ファイルへの書き込みではなく文字列の返却:

php<?php
  $result = sprintf("Today is %s", date('Y-m-d'));
  echo $result;
?>

コード実行結果:

php'Today is 2023-11-15'

関連項目

  • フォーマット済み文字列を返す関数 sprintf
  • フォーマット済み文字列を出力する関数 vprintf
  • データをファイルに書き込む関数 file_put_contents