【PHP8.x】fprintf関数の使い方
作成日: 更新日:
fprintf関数は、指定したストリームリソースに対し、フォーマット文字列に従って整形した文字列を書き込む処理を実行する関数です。printf
関数が結果を標準出力、つまり画面に表示するのとは異なり、fprintf
関数はfopen()
関数などで開いたファイルなど、任意のストリームに出力先を指定できる点が特徴です。第1引数には書き込み対象となるストリームリソースを、第2引数には出力する文字列の書式を定義したフォーマット文字列を渡します。このフォーマット文字列には、%s
(文字列)や%d
(整数)といった変換指定子を含めることができ、第3引数以降で与えられた値がこれらの指定子の箇所に順番に埋め込まれて、最終的な出力文字列が生成されます。関数は処理が成功した場合、書き込まれた文字列のバイト数を整数で返し、書き込みに失敗した場合はfalse
を返します。この特性から、ログファイルへの追記や、CSVファイルのような特定の形式を持つデータの生成など、ファイルへの書き込み処理で広く利用されます。
基本的な使い方
構文(syntax)
<?php
// ファイルポインタ(リソース)を取得します。'w' は書き込みモードを意味します。
$file = fopen('data.txt', 'w');
// 変数を定義します。
$product_name = 'Apple';
$quantity = 10;
// fprintf関数を使い、フォーマット指定子を含む文字列をファイルに書き込みます。
// %s は文字列に、%d は整数に置き換えられます。
fprintf($file, '商品名: %s, 在庫数: %d個', $product_name, $quantity);
// ファイルを閉じます。
fclose($file);
?>
引数(parameters)
resource $stream, string $format, mixed ...$values
- resource $stream: 書き込み先のファイルポインタなどのリソースを指定します。
- string $format: 書き込む文字列のフォーマットを指定します。
- mixed ...$values: $format で指定されたフォーマット文字列に対応する値(可変長引数)を指定します。
戻り値(return)
int|false
fprintf関数は、指定されたストリームにフォーマットされた文字列を書き込みます。書き込まれたバイト数を整数で返します。書き込みに失敗した場合はfalseを返します。