IT News > トピックス > PHP Tips > PHPでファイルを読み取るための正しい方法

どういう場合に fopen、fclose、feof、fgets、fgetss、そして fscanf を使うべきかを学ぶ

抜粋URL
http://phpspot.org/blog/archives/2007/03/php_72.html

PHPでファイルを読み取るための正しい方法。
http://www-06.ibm.com/jp/developerworks/opensource/library/os-php-readfiles/index.shtml?ca=drs-

PHPを使っていると、読み込みの際に、file 関数や file_get_contents 関数を使ったりして、ファイルの処理に関する部分をうまく理解しないで使っている場合も多いかと思います。

こういった関数では一括してファイルをメモリに読み込むのでファイルサイズが大きすぎると使えなかったりします。
ページでは、ファイルが大きくても読み込める、fopenを使った読み取り方や指定バイト読んだり、fseekを使ったファイル内ジャンプなどの使い方が紹介されています。

iniファイルの処理方法や、ファイルを読む際のチェック方法(file_exists , is_readable )などのテクニックも紹介されています。

ファイルを開き、fgets でファイルを読み取る

$file_handle = fopen("myfile", "r");
while (!feof($file_handle)) {
   $line = fgets($file_handle);
   echo $line;
}
fclose($file_handle);

こうした関数は、経験の長いプログラマーの大部分にとってはおなじみのものですが、ここではこれらの関数を分析してみることにします。実質的には、次のステップを実行しています。

  1. ファイルを開きます。$file_handle は、そのファイル自体への参照を保存します。
  2. 既にファイルの最後に達したかどうかをチェックします。
  3. ファイルの最後に達するまでファイルを読み続け、各行を、読み取りながら出力します。
  4. ファイルを閉じます。