PHPのfclose()関数とは?ファイルポインタを閉じる方法をわかりやすく解説
PHPのfclose()関数は、fopen()などで開いたファイルポインタを閉じるための関数です。処理が成功した場合はTRUEを、失敗した場合はFALSEを返します。ファイル操作を行った後は、リソースを解放するために必ずfclose()でファイルを閉じることが推奨されています。
構文(Syntax)
fclose(file_pointer)
パラメータ(引数)
file_pointer − 有効なファイルポインタを指定します。このポインタは、fopen()またはfsockopen()によって正常に開かれたファイルを指している必要があります。
戻り値(Return値)
fclose()関数は以下の値を返します。
- 成功した場合は TRUE
- 失敗した場合は FALSE
使用例1:基本的な使い方
まずは、ファイルを開いてすぐに閉じるシンプルな例を見てみましょう。
<?php
$file_pointer = fopen('amit.txt', 'r');
fclose($file_pointer);
?>
出力結果
true
この例では、fopen()で「amit.txt」を読み込みモード('r')で開き、fclose()で正常に閉じています。その結果、trueが出力されます。
使用例2:ファイルの内容を読み込んで閉じる
次に、実践的な例として、ファイルを開いて内容をfgetss()で読み込み、読み終えた後にfclose()でファイルを閉じる流れを紹介します。
<?php
$file_pointer = @fopen("/documents/new.php", "r");
if ($file_pointer) {
while (!feof($file_pointer)) {
$buffer = fgetss($file_pointer, 1024);
echo $buffer;
}
fclose($file_pointer);
}
?>
出力結果
This is demo text
このコードでは、@fopen()を使ってエラーメッセージを抑制しながらファイルを開いています。whileループとfeof()を組み合わせてファイルの末尾まで繰り返し読み込み、fgetss()でHTMLタグなどを除去しつつ1行ずつバッファに格納して出力しています。すべての読み込みが完了した後、fclose()でファイルポインタを確実に閉じています。
fclose()関数を使う際のポイント
リソースの解放: ファイルを開いたまま放置するとメモリやファイルハンドルを消費し続けるため、処理が完了したら必ずfclose()を呼び出しましょう。
条件分岐での利用: ファイルが正常に開けた場合のみ処理を行うようにif文と組み合わせると、安全なコードになります。
エラー抑制演算子(@): ファイルが存在しない場合などの警告を出したくない場合は、@付きのfopen()を使用する方法もあります。
-
PHPのfgets()関数とは?使い方とパラメータ、実行例をわかりやすく解説
PHPのfgets()関数は、ファイルから1行ずつ文字列を読み込むための関数です。指定したファイルポインタが指すファイルから、「length - 1」バイトまでの文字列を読み取って返します。テキストファイルを行単位で処理したい場合に非常に便利な関数です。 基本的な構文 fgets(file_pointer, length); パラメータ(引数) file_pointer(ファイルポインタ)− 有効なファイルポインタである必要があり、fopen() や fsockopen() によって正常に開かれたファイルを指している必要があります。 length(読み込みバイト数)− 読み込みは「lengt
-
PHPのfeof()関数とは?使い方とサンプルコードを徹底解説
feof() 関数は、ファイルポインタがファイルの終端(EOF:End Of File)に達しているかどうかを判定するためのPHP組み込み関数です。ファイルポインタがEOFに達している場合、またはエラー(ソケットタイムアウトを含む)が発生した場合には TRUE を返し、それ以外の場合は FALSE を返します。 この関数は、fgets() や fgetss() などを使ってファイルを1行ずつ読み込む際に、ループの終了条件としてよく利用されます。 構文 feof(file_pointer) パラメータ file_pointer − 有効なファイルポインタである必要があります。具体的には、f