fprintf関数
関数 fprintf は指定されたテンプレートに従って文字列をフォーマットし、結果をファイルストリームに書き込みます。第一引数にファイルリソース、第二引数にフォーマット文字列、それ以降の引数にテンプレートに挿入する値を取ります。ファイルリソースの代わりに null を渡すと、ストリームへの書き込みではなく文字列を返します。
フォーマット文字列では、記号 % で始まる特殊文字(フォーマット指定子)が使用され、出力のフォーマットを制御します。
構文
fprintf(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
$file = fopen('output.txt', 'w');
fprintf($file, "Name: %s, Age: %d", "John", 25);
fclose($file);
?>
ファイルoutput.txtの内容:
'Name: John, Age: 25'
例
異なるフォーマット指定子の使用:
<?php
$res = fopen('php://temp', 'w');
fprintf($res, "Float: %.2f, Hex: %x", 12.3456, 255);
rewind($res);
echo stream_get_contents($res);
fclose($res);
?>
コード実行結果:
'Float: 12.35, Hex: ff'
例
ファイルへの書き込みではなく文字列の返却:
<?php
$result = sprintf("Today is %s", date('Y-m-d'));
echo $result;
?>
コード実行結果:
'Today is 2023-11-15'
関連項目
-
フォーマット済み文字列を返す関数
sprintf -
フォーマット済み文字列を出力する関数
vprintf -
データをファイルに書き込む関数
file_put_contents