質問: 「logファイル分析:自作アクセス解析」 こちらの質問で、ログを収集するのはできるようになりました。 今度はlogファイルを自動分析する仕組みを作りたいです。 logファイルにカンマ区切りで以下のように保存します。 ホスト,時刻,アクセスURL[改行] このログファイルから、アクセス数が多いURLを順番に並べるにはどのような処理をすればいいでしょうか? 何からどう手をつけていいのかわかりません。MySQLにデータを格納すれば自力で出来るとは思いますけど、一般的にはどのような処理をするのでしょうか? 漠然とした質問ですが、みなさんよろしくお願いします。 *PHPとMySQLが少々出来るレベルです。
回答: 自分が同じようなことをやる場合、一旦ファイルに落とさずにアクセスの度にDBに追加しちゃいますねー。既にアクセスログをファイルに記録してるのであれば、まずそのデータをDBに入れてしまって、それ以降はアクセスの度にDBに書き込むようにしちゃいます。 で、ファイルにアクセスログがある場合、それをDBにまとめて記録する方法はこんな流れになると思います。 $data = file("access.log"); $count = count($data); // このへんでDBを開く for($i=0; $i<$count; $i++) { $tmp = split(',', trim($data[$i])); // tmp[0] ホスト // tmp[1] 時刻 // tmp[2] アクセスURL // これらを組み合わせてクエリを作る // クエリ発行 } // このへんでDBを閉じる こんな感じです。 MySQLは長らく触っていないので、ミスったら嫌だから処理の手順だけ書いています。すみませんw参考になれば幸いです。