関数 vfprintf
関数 vfprintf は、指定子に従ってフォーマットされた文字列をファイルストリームに書き込みます。最初のパラメータとしてファイルリソース、2番目にフォーマット文字列、3番目に代入する引数の配列を受け取ります。フォーマット文字列では、記号 % で始まる特別な文字(フォーマット指定子)が使用され、出力のフォーマットを制御します。
構文
vfprintf(resource $handle, string $format, array $args): int
フォーマット指定子
| 指定子 | 説明 |
|---|---|
%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');
$values = [10, 20.5, 'test'];
vfprintf($file, "Number: %d, Float: %.2f, String: %s", $values);
fclose($file);
?>
ファイル output.txt の内容:
'Number: 10, Float: 20.50, String: test'
例
様々な指定子の使用:
<?php
$res = fopen('php://output', 'w');
$data = [15, 12.3456, 'ABCDE'];
vfprintf($res, "Hex: %x, Scientific: %.2e, Padding: '%5s'", $data);
fclose($res);
?>
出力結果:
'Hex: f, Scientific: 1.23e+1, Padding: \' ABCDE\''