PHP 5 ファイル Open/Read/Close

❮ 前章へ 次章へ ❯

この章では、サーバ上のファイルの open、read、close の方法について説明します。


PHP ファイルのオープン - fopen()

ファイル・オープンには fopen() 関数を使うことがベターです。この関数は、readfile()関数よりも多くのオプションがあります。

レッスン内では、テキストファイル "webdictionary.txt" を使用します:

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

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+ 読み込み/書き出し用でオープンします。ファイルの内容を消去するか、ファイルが存在しない場合は新しいファイルを作成します。 ファイルポインタをファイルの先頭に置きます
a+ 読み込み/書き出し用でオープンします。ファイル内の既存データを維持します。ファイルポインタをファイルの終端に置きます。 ファイルが存在しない場合は新しいファイルを作成します
x+ >読み込み/書き出し用の新しいファイルを作成します。ファイルが既に存在する場合はFALSEを返し、エラーになります

PHP ファイルの入力 - fread()

fread() 関数は、オープン済みのファイルから読み込みます。

fread() の最初のパラメータは、読み込むファイルの名前で、2番目のパラメータは読み込む最大バイト数を指定します。

次のPHPコードは "webdictionary.txt"ファイルを最後まで読み込みます:

fread($myfile,filesize("webdictionary.txt"));

PHP ファイルのクローズ - fclose()

fclose() 関数は、オープンしたファイルを閉じるために使用します。

読込みが終了した後は、すべてのファイルを閉じることをお勧めします。サーバ上のファイルをオープンし続けてリソースを消費させないためです!

fclose() には、閉じたいファイル名(またはファイル名を格納している変数)が必須です:

<?php
$myfile = fopen("webdictionary.txt", "r");
// some code to be executed....
fclose($myfile);
?>

PHP 1行読み込み - 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);
?>
例の実行 »

PHP 1文字読み込み - fgetc()

fgetc() 関数は、ファイルから1文字づつ読み込むために使用します。

下の例は、ファイルの終端に達するまで、"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 ファイルシステム・リファレンスをご覧ください。


❮ 前章へ 次章へ ❯