2008年2月18日

[PHP-users 33295] Re:ログの区切りかた

どーもイワセといいます。

やってみました。参考にしてください。

$lines = array(
'[22:01:00]: SEARCH: 192.168.1.1 (WebAgent): KEY WORDS "弱肉強食" ID
"00000000" "00" VERSION "taka table" "1.54" (4 results)',
'[22:02:00]: SEARCH: 192.168.1.2 (WebAgent): KEY WORDS "弱肉" KEY

WORDS "強食" ID "00000000" "00" VERSION "taka table" "1.54" (5 results)',
'[22:03:00]: SEARCH: 192.168.1.3 (WebAgent): KEY WORDS "弱肉" KEY
WORDS "強食" KEY WORDS "ことわざ" ID "00000000" "00" VERSION "taka
table" "1.54" (2 results)'
);
$pattern = "/\[([0-9]{2}:[0-9]{2}:[0-9]{2})\]: SEARCH:
([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) \((.*)\): (KEY WORDS
.+)ID.+\(([0-9]+) results\)/";
foreach ($lines as $line) {
preg_match($pattern, $line, $matches);
$keywords = str_replace("KEY WORDS ", "", $matches[4]);
echo "{$matches[1]} [検索]:{$matches[2]}({$matches[3]})
$keywords({$matches[5]}Hit)\n";
}

--- output ---
22:01:00 [検索]:192.168.1.1(WebAgent) "弱肉強食" (4Hit)
22:02:00 [検索]:192.168.1.2(WebAgent) "弱肉" "強食" (5Hit)
22:03:00 [検索]:192.168.1.3(WebAgent) "弱肉" "強食" "ことわざ" (2Hit)

※「"」が検索語に含まれる場合どのようにログに記録されるか不明なので
 検索語は「"」で囲ったままにしました。

_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3

投稿者 xml-rpc : 2008年2月18日 03:17
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/69921
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。