ファイルから1行ずつ読み込んで表示する (ファイルオープンと行単位でのファイルの読み込み) - PHP

PHPでファイルを読み込みファイル内容を表示する方法を紹介します。

プログラム例

コード

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title></title>
  </head>
  <body>
    <?php
    $fileName = "data.txt";
    $file = fopen($fileName, "r");

    while (!feof($file)) {
      $str = fgets($file);
      print "$str<BR>";
    }

    fclose($file);
    ?>
  </body>
</html>

解説

下記コードで、これから開くファイル名を変数に設定します。
 $fileName = "data.txt";

fopen()関数を呼び出しファイルを開きます。第二引数に"r"を指定しているため、読み取り専用で開きます。ファイルがオープンできた場合ファイルポインタが戻り値として戻ります。
 $file = fopen($fileName, "r");

feof()関数を呼び出しファイルの終端を判定します。ファイルが終端でない限りwhileループをループし続けます。
 while (!feof($file)) {

fgets()関数を呼び出しファイルから1行読み出します。(fgets()関数の引数はファイルポインタです。)
 $str = fgets($file);

読み出した1行分の文字列を表示します。
 print "$str<BR>";

実行結果

下記のデータファイルを準備します。
data.txt
そちらはいかがお過ごしでしょうか? 
まだまだ寒い日が続きます。 
お体にお気をつけください。 

先のPHPファイルをWebブラウザで表示します。下図の画面が表示されます。


fopen関数のファイルモード

オプションモード・動作ファイルポインタの位置その他
'r'読み込みのみでオープンします。ファイルの先頭に置きます。
'r+'読み込み/書き出し用にオープンします。ファイルの先頭に置きます。
'w'書き出しのみでオープンします。ファイルの先頭に置きます。ファイルサイズをゼロにします。ファイルが存在しない場合には作成を試みます。
'w+'読み込み/書き出し用でオープンします。ファイルの先頭に置きます。ファイルサイズをゼロにします。 ファイルが存在しない場合には作成を試みます。
'a'書き出し用のみでオープンします。ファイルの終端に置きます。 ファイルが存在しない場合には作成を試みます。
'a+'読み込み/書き出し用でオープンします。ファイルの終端に置きます。ファイルが存在しない場合には作成を試みます。
'x'書き込みのみでオープンします。ファイルの先頭に置きます。ファイルが既に存在する場合には fopen() は失敗し、 E_WARNING レベルのエラーを発行します。 ファイルが存在しない場合には新規作成を試みます。
'x+'読み込み/書き出し用でオープンします。ファイルの先頭に置きます。それ以外の動作は 'x' と同じです。
'c'書き込みのみでオープンします。ファイルの先頭に置きます。ファイルが存在しない場合には新規作成を試みます。 ファイルが既に存在する場合でもそれを ('w' のように) 切り詰めたりせず、 また ('x' のように) 関数のコールが失敗することもありません。
'c+'読み込み/書き出し用でオープンします。ファイルの先頭に置きます。それ以外の動作は 'c' と同じです。

著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2024-01-06
作成日: 2011-02-01
iPentec all rights reserverd.