PHPのfclose()関数でファイルを閉じてみます。
PHPはサーバーサイドのプログラミング言語であり、Webサーバーに保存されているファイルやディレクトリを操作することができ、ファイルの操作が終了した後に、ファイルを閉じる必要があります。この場合にfclose()関数を使用します。ファイルを閉じることに成功すると真(True)を、失敗すると偽(False)を返します。
■基本的な構文
fclose(file_pointer)
file_pointerは、fopen()関数またはfsockopen()関数を使用し、正常にオープンされたファイルを指定する必要があります。
■環境
・Windows10
・WampServer Version 3.2.3 64bit
・PHP Version 7.3.21
■PHPのfclose()関数を使用し、ファイルを閉じる
では、PHPのfclose()関数を使用し、ファイルを閉じてみます。
■コード(close_file.php)
<html lang="ja">
<head>
<title>fclose()関数を使用しファイルを閉じる</title>
</head>
<body>
<?php
$open_file = fopen("C:/wamp64/www/project/test.txt","r") or die("エラー:ファイルを開くことができません。");
if($open_file){
echo "ファイルが正常に開かれました。";
fclose($open_file);
}
?>
</body>
</html>
今回はopen_fileという変数を宣言し、その中でfopen()関数を使用します。括弧内の第1のパラメーター,引数には開くファイルを指定し、第2のパラメーター,引数でモードを”r (読み込みのみで開く)”と指定。さらにdie()関数とor 演算子を使用し、ファイルを開いた時のエラー処理を記述します。今回は括弧内に文字列を記述し、出力します。
次に条件分岐(if文)を使用し、ファイルが開けたTRUE(真)の場合に、echo文で文字列を出力するようにします。
出力後、fclose()関数を使用し、open_file変数の中で開いたファイル(test.txt)を閉じます。
なお、今回は「C:\wamp64\www\project(フォルダパス)」内に「test.txt」という空のテキストファイルを用意しています。
■実行
では、このスクリプトを「close_file.php」という名前で保存し、実行させてみます。
実行してみると、今回指定したファイルの読み込みが開始され、正常にファイルが読み込まれ、条件分岐(if文)でTRUE(真)となり、「ファイルが正常に開かれました。」と文字列が出力されました。その後、開いたファイルがfclose()関数を使用したことで閉じられました。
■fclose()関数を使用しない場合
では、fclose()関数を使用しない場合は、どうなるのでしょうか。やってみます。
■コード(close_file_2.php)
<html lang="ja">
<head>
<title>fclose()関数を使用せずにファイルを閉じる</title>
</head>
<body>
<?php
$open_file = fopen("C:/wamp64/www/project/test.txt","r") or die("エラー:ファイルを開くことができません。");
if($open_file){
echo "ファイルが正常に開かれました。";
}
?>
</body>
</html>
先ほどのclose_file.phpというファイルを変更し、fclose()関数を使用せずにコードを記述します。その後close_file_2.phpという名前で新しく保存します。
■実行
では、このスクリプトを「open_file_2.php」という名前で保存し、実行させてみます。
実行させてみると、fclose()関数を使用しなくても、エラーなどは発生せず、指定したファイルを開いて閉じられました。PHPはスクリプトの終了時に開いているファイルをすべて自動的に閉じるようになっています。
自動的にファイルを閉じてくれますが、すべての操作を行った後にファイルを閉じることは、制作者として良い習慣です。
コメント