2008年2月18日

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

どーもイワセです。

自動改行で複数行になってしまった箇所がありますが、パターン部分だけは
影響を受けないように修正しました。

> $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\)/";


$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\)/";

> どーもイワセといいます。
>
> やってみました。参考にしてください。
>
> $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:43
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/69922
トラックバック
コメント
コメントする




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