TECH I.S.

PHP ファイルを開く/読み取る/閉じる


この章では、サーバー上のファイルを開き、読み取り、閉じる方法を説明します。


PHPファイルを開く - fopen()

ファイルを開くより良い方法は、fopen()関数を使うことである。この関数は、readfile()関数よりも多くのオプションを提供します。

レッスンでは、テキストファイル「webdictionary.txt」を使用します。

<div> AJAX = Asynchronous JavaScript and XML CSS = Cascading Style Sheets HTML = Hyper Text Markup Language PHP = PHP Hypertext Preprocessor SQL = Structured Query Language SVG = Scalable Vector Graphics XML = EXtensible Markup Language</div>
fopen()の最初のパラメータには、オープンするファイル名を指定し、2番目のパラメータには、ファイルをどのモードで開くかを指定する。以下の例では、fopen()関数が指定されたファイルを開けなかった場合のメッセージも生成します。:

<?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); echo fread($myfile,filesize("webdictionary.txt")); fclose($myfile); ?>

ヒント:fread()関数とfclose()関数については後述します。

ファイルは、次のいずれかのモードで開くことができます。


モード

説明

r ファイルを読み取り専用で開く。ファイルポインタはファイルの先頭から始まります。
w ファイルを書き込み専用で開く。ファイルの内容を消去するか、ファイルが存在しない場合は新しいファイルを作成します。ファイルポインタはファイルの先頭から始まります。
a ファイルを書き込み専用で開く。ファイル内の既存のデータは保持されます。ファイル ポインタは、ファイルの末尾から始まります。ファイルが存在しない場合は、新しいファイルを作成します
x 書き込み専用の新しいファイルを作成します。ファイルが既に存在する場合はFALSEとエラーを返します。
r+ 読み取り/書き込み用にファイルを開く。ファイルポインタはファイルの先頭から始まります。
w+ 読み取り/書き込み用にファイルを開く。ファイルの内容を消去するか、ファイルが存在しない場合は新しいファイルを作成します。ファイルポインタはファイルの先頭から始まります。
+ 読み取り/書き込み用にファイルを開く。ファイル内の既存のデータは保持されます。ファイルポインタは、ファイルの末尾から始まります。ファイルが存在しない場合は、新しいファイルを作成します。
×+ 読み取り/書き込み用の新しいファイルを作成します。ファイルが既に存在する場合はFALSEとエラーを返します。

PHPファイル読み取り - fread()

fread()関数は、開いているファイルから読み取ります。

最初のパラメーターfread()には、読み取るファイルの名前が含まれ、2番目のパラメーターは読み取る最大バイト数を指定します。

次のPHPコードは、「webdictionary.txt」ファイルを最後まで読み取ります。

<div> fread($myfile,filesize("webdictionary.txt"));</div>

PHPファイルを閉じる - fclose()

fclose()関数は、開いているファイルを閉じるために使用されます。

ファイルの処理が終了したら、すべてのファイルを閉じることをお勧めします。サーバー上で開いているファイルがリソースを占有するのは望ましくありません。

fclose()は、閉じるファイルの名前 (またはファイル名を保持する変数) が必要です。
<div><?php $myfile = fopen("webdictionary.txt", "r"); // some code to be executed.... fclose($myfile); ?></div>

PHP単一行読み取り - fgets()

fgets()関数は、ファイルから1行を読み取るために使用されます。

以下の例は、「webdictionary.txt」ファイルの最初の行を出力します。

<?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); echo fgets($myfile); fclose($myfile); ?>

注:fgets()関数の呼び出しの後、ファイルポインタは次の行に移動している。


PHPファイルの終わりをチェック - feof()

feof()関数は、「ファイルの終わり」(EOF)に到達したかどうかをチェックします。 feof()関数は、長さが不明なデータをループする場合に便利です。

以下の例では、ファイルの終わりに達するまで、「webdictionary.txt」ファイルを1行ずつ読み取ります。

<?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); // Output one line until end-of-file while(!feof($myfile)) {   echo fgets($myfile) . "<br>"; } fclose($myfile); ?>


PHP1文字読み取り - fgetc()

fgetc()関数は、ファイルから単一の文字を読み取るために使用されます。

以下の例では、ファイルの終わりに達するまで、「webdictionary.txt」ファイルを1文字ずつ読み取ります。

<?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); // Output one character until end-of-file while(!feof($myfile)) {   echo fgetc($myfile); } fclose($myfile); ?>

注意:fgetc()関数の呼び出し後、ファイルポインタは次の文字に移動します。


完全なPHPファイルシステムリファレンス

ファイルシステム関数の完全なリファレンスについては、PHP ファイルシステム リファレンスを参照して下さい。



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細