PHPのfflush()関数とは?使い方とサンプルコードを解説
fflush()関数は、PHPで開いているファイルに対して出力をフラッシュ(強制書き込み)するための組み込み関数です。通常、ファイルへの書き込みはバッファリングされるため、データがすぐにディスクへ反映されるとは限りません。この関数を使うことで、バッファに溜められたすべての出力を、ファイルポインタが指すリソースに対して即座に書き込むことができます。
基本構文
fflush(file_pointer)
パラメータ
file_pointer − 書き込み対象となる、fopen()などで開かれたファイルストリームを指定します。
戻り値
fflush()関数は、処理の結果に応じて以下の値を返します。
- 成功した場合は TRUE
- 失敗した場合は FALSE
なお、読み取り専用で開いたファイルなど、書き込みが行えないストリームに対しては FALSE が返される点に注意してください。
使用例
まずは基本的な使い方を見てみましょう。
<?php
$file_pointer = fopen("one.txt", "r+");
fwrite($file_pointer, "test line");
fflush($file_pointer);
?>
出力
test line
この例では、ファイル「one.txt」を読み書きモード(r+)で開き、fflush()によってバッファ内のデータを強制的にファイルへ書き込んでいます。
続いて、別の例も見てみましょう。
使用例その2
<?php
$file_pointer = fopen("two.txt", "r");
$res = fgets($file_pointer);
while(!feof($file_pointer))
echo fgets($file_pointer) . "<br>";
fclose($file_pointer);
?>
出力
Java is a programming language.
JavaScript is a scripting language.
まとめ
fflush()関数は、重要なデータを確実にファイルへ保存したい場合や、プログラムの途中経過をログファイルに即座に記録したい場合などに役立ちます。バッファリングによる書き込み遅延を防ぎたい場面で、ぜひ活用してみてください。
-
PHPのfeof()関数とは?使い方とサンプルコードを徹底解説
feof() 関数は、ファイルポインタがファイルの終端(EOF:End Of File)に達しているかどうかを判定するためのPHP組み込み関数です。ファイルポインタがEOFに達している場合、またはエラー(ソケットタイムアウトを含む)が発生した場合には TRUE を返し、それ以外の場合は FALSE を返します。 この関数は、fgets() や fgetss() などを使ってファイルを1行ずつ読み込む際に、ループの終了条件としてよく利用されます。 構文 feof(file_pointer) パラメータ file_pointer − 有効なファイルポインタである必要があります。具体的には、f
-
PHPのfclose()関数とは?ファイルポインタを閉じる方法をわかりやすく解説
PHPのfclose()関数は、fopen()などで開いたファイルポインタを閉じるための関数です。処理が成功した場合はTRUEを、失敗した場合はFALSEを返します。ファイル操作を行った後は、リソースを解放するために必ずfclose()でファイルを閉じることが推奨されています。 構文(Syntax) fclose(file_pointer) パラメータ(引数) file_pointer − 有効なファイルポインタを指定します。このポインタは、fopen()またはfsockopen()によって正常に開かれたファイルを指している必要があります。 戻り値(Return値) fclose()関数は