k27w回答ポイント 70ptウォッチ

PHPでテキストファイルに保存したログを一覧表示させたいと思います。

プログラムとデザイン(html)の部分を分ける為に、以下のようにしました。

// ファイルからデータを取得
$fp = fopen("log.txt","r");
$i=0;
while(!feof($fp)){
// ファイルから1行読み込み
$line = fgets($fp,1000);
// タブ区切りを配列にする
$array = explode("\t",$line);
// 表示用の配列に代入
$list[$i]["date"] = $array[0];
$list[$i]["ua"] = $array[1];
$list[$i]["host"] = $array[2];

$i++;
}

// 表示用
<?php for($i=0;$i<10;$i++){?>
<tr>
<td><?=$list[$i]["date"]?></td>
<td><?=$list[$i]["ua"]?></td>
<td><?=$list[$i]["host"]?></td>
</tr>
<?php }?>
※繰り返し箇所のみ掲載

しかし、上記の方法だと1万行の処理をするのに2~3秒の時間を要します。
一旦配列に代入しているので時間がかかるのは分かるのですが、
もしかしたら自分の書き方・考え方が間違っているのではないか?と思っています。
他に良い方法がありましたら、アドバイスいただければと思います。

※あくまでPHPとテキストファイルを使った上での実験ですので、DBを利用するという代替案は無しでお願いします。
※PHPは5.2.6を使っています。

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

みんなの回答

この質問へのコメント

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2008-11-26 14:58:55
終了日時
2008-11-27 10:54:32
回答条件
1人2回まで

この質問のカテゴリ

この質問に含まれるキーワード

PHP7798UA98HTML5036代替481dB1997プログラム5048配列924

人気の質問

メニュー

PC版