phpでのログファイル要素の取り出しについて
お世話になります。
phpで以下の事をする場合についてなのですが、
log.dat(ログファイル)
(log.datの内容)
643,1232,abceee,やま,
543,896,ddc.jp,かわ,
343,2435,rrsc,国,
214,1130,edbv.com,鳥,
※ログの順番はソートによって変わるようになっています
上記ログファイルの指定した部分だけを取り出して表示させたい場合、
例えば以下のようにforeachなどのループで毎回、
照合させて取り出すしか方法はないでしょうか。
hoge.php
============================
$id = $_GET['id'];
$lines = file("log.dat");
foreach ($lines as $line) {
$data=split("," ,$line);
if'($data[2] == $id) { print "$data[1]"; break;}
}
=====================================
これを、たとえばですが、
以下のような記述で任意の箇所に何箇所か表示させる事ができるようにしたいのですが
<?require("./hoge.php?id=rrsc");?>
そのたびにlog.datをループさせてifで照合させて・・・
とやりますとログファイルもそこそこ大きくなってきますと
何回もループさせる事からサーバー負荷の点が気になってしまいまして
このような場合、他に効率の良い方法などございましたら
ご教授いただけないでしょうか。
(データベース等の使用は出来ず、あくまでログファイルを使って行わなければなりません)
お手数をおかけしますがもしご存知の方がいらっしゃいましたら
ご教授いただけますと幸いです。
(PHP Version 4.3.9 で稼動することが前提となります)
お礼
お返事ありがとうございます。 なるほど。検索キーワードやソート順等は納得です!DBから検索やDBのデータをソートは よくある話ですがこれらの動作をDBに入れるということも見かけないですが残しておけば貴重な情報になりますね。 >掲示板の書き込まれた情報もログですし これは書き込み情報をDBに入れる場合もDBと同様にログを残すという意味でしょうか? それともDBには書き込まない内容(例えばIPアドレス)をログに残すという意味でしょうか?