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()関数が指定されたファイルを開けなかった場合のメッセージも生成します。:
ヒント: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></div>
PHP単一行読み取り - fgets()
fgets()
関数は、ファイルから1行を読み取るために使用されます。
以下の例は、「webdictionary.txt」ファイルの最初の行を出力します。
注:fgets()
関数の呼び出しの後、ファイルポインタは次の行に移動している。
PHPファイルの終わりをチェック - feof()
feof()
関数は、「ファイルの終わり」(EOF)に到達したかどうかをチェックします。
feof()
関数は、長さが不明なデータをループする場合に便利です。
以下の例では、ファイルの終わりに達するまで、「webdictionary.txt」ファイルを1行ずつ読み取ります。
PHP1文字読み取り - fgetc()
fgetc()
関数は、ファイルから単一の文字を読み取るために使用されます。
以下の例では、ファイルの終わりに達するまで、「webdictionary.txt」ファイルを1文字ずつ読み取ります。
注意:fgetc()関数の呼び出し後、ファイルポインタは次の文字に移動します。
完全なPHPファイルシステムリファレンス
ファイルシステム関数の完全なリファレンスについては、PHP ファイルシステム リファレンスを参照して下さい。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。