2011年8月23日火曜日

phpでテキストファイルを読み込む方法あれこれ

どんな言語でプログラミングしていても、テキストファイルを読み込んで処理するというのは基本中の基本です。phpではいくつかの方法が用意されています。

まずは、読み込むファイルを用意しました。「なんちゃって個人情報」さんを使わせていただきました。

三上 恭子
藤岡 六郎
吉村 隼士
沢尻 由宇
朝倉 光博
今回取り上げるのは
  • file
  • file_get_contents
  • fopen - fgets
の3つです。
<?php
// file() 1行1要素の配列に読み込む
$list = file("sample.txt");
var_dump($list);

// 全体をひとつの文字列に読み込む
$s = file_get_contents("sample.txt");
var_dump($s);

// 1行ずつ読み込む
$fp = @fopen("sample.txt", "r");
while (($line = fgets($fp))) {
	$line = rtrim($line);
	echo $line . PHP_EOL;
}
@fclose($fp);
巨大なファイルを file や file_get_contents で読み込もうとするとメモリ不足のエラーが発生する可能性がありますので、ケースによって1行ずつ読み込む昔ながらのfopen - fgets と使い分けるとよいでしょう。

さきほどのスクリプトの実行結果は以下になります。

array(5) {
  [0]=>
  string(14) "三上 恭子
"
  [1]=>
  string(14) "藤岡 六郎
"
  [2]=>
  string(14) "吉村 隼士
"
  [3]=>
  string(14) "沢尻 由宇
"
  [4]=>
  string(14) "朝倉 光博
"
}
string(70) "三上 恭子
藤岡 六郎
吉村 隼士
沢尻 由宇
朝倉 光博
"
三上 恭子
藤岡 六郎
吉村 隼士
沢尻 由宇
朝倉 光博

0 件のコメント:

コメントを投稿