php fgetsでファイルの内容を1行ずつ読み込む

php fgetsでファイルの内容を1行ずつ読み込む

phpで、fgetsを使用して、ファイルの内容を1行ずつ読み込むサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Stream release 8
  • php 8.0.0
  • nginx 1.14.1

fgets使い方

fgetsを使用すれば、ファイルの内容を1行ずつ読み込むことが可能です。

以下は、「sample.php」を実行して「hoge.txt」ファイルの内容を1行読み込んで表示するサンプルコードとなります。

ディレクトリ構成

hoge.txt内容

sample.php

実行結果をみると、1行目しか読み込まれていないことが確認できます。

全ての行を読み込む場合は、EOF(End Of File)まで処理を実行します。

「hoge.txt」の途中に改行があっても、最後まで読み込むことが可能です。

fileとfile_get_contents

fileを使用しても同様の結果を得ることが可能です。

file_get_contentsを使用しても同じ結果が得られます。

ファイルの内容を全て表示する場合は、file_get_contentsが一番パフォーマンスは良さそうです。

【参考】 ファイルの内容を全て表示するコードをそれぞれ10万回実行した結果

readfile

全て表示するのであれば、readfileも使用できます。

fpassthru

fpassthruを使っても同じです。