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

sublime hashi_311 @ kve.biglobe.ne.jp
2008年 2月 18日 (月) 00:23:47 JST


sublimeと申します。

一つの案として書きますので
これが全てだと思わないで下さい。

まず取得元となるログが何のログか知りませんが
キーワード毎にフォーマットが固定となっているようですので
正規表現で可能ではないでしょうか。

> 検索パターン1:弱肉強食
 →KEY WORDS "弱肉強食"

> 検索パターン2:弱肉(半角スペース)強食
 →KEY WORDS "弱肉" KEY WORDS "強食"

> 検索パターン3:弱肉(半角スペース)強食(半角スペース)ことわざ
 →KEY WORDS "弱肉" KEY WORDS "強食" KEY WORDS "ことわざ"
 
といった感じで必ず「KEY WORDS "○○○○"」と記録されるようですので
これにマッチするような正規表現を使用すればいけると思います。

ただ正規表現の構文の話はPHP自体とあまり関係無いと思っているので
ここには書きません。


---------------------------------------------------------------------

>こんばんは、はじめて投稿します。
>田中と申します
>
>ログの区切りかた について皆様のお知恵をお借りしたく思います
>
>
>このようなキーワードで検索したとします。
> 検索パターン1:弱肉強食
> 検索パターン2:弱肉(半角スペース)強食
> 検索パターン3:弱肉(半角スペース)強食(半角スペース)ことわざ
>
>するとログには下記のように記録されていてそのログを見やすいように出力したいと思っています
> [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)
>ログは上から検索パターン1,2,3となっています
>
>理想は下記のように表示できるようにしたいのです
> 22:01:00 [検索]:192.168.1.1(Web) 弱肉強食 (4Hit)
> 22:02:00 [検索]:192.168.1.2(Web) 弱肉 強食 (5Hit)
> 22:03:00 [検索]:192.168.1.3(Web) 弱肉 強食 ことわざ (2Hit)
>
>
>PHPでは
>
>$logdata = file("/usr/takatable/log/20080117.dat");
>
>for($i=0;$i<count($logdata);$i){
> $data = explode("(半角スペース)", $logdata[$i]);
> $key_data[] = $data[6];
>}
>
>で区切って取り出すことは出来ましたが、スペースで区切られたキーワードが増えると
>$data[num]で取り出せるデータの数もかわってしまいキーワードのみをうまく取り出すことができません。
>
>宜しくお願い致します。
>_______________________________________________
>PHP-users mailing list  PHP-users @ php.gr.jp
>http://ml.php.gr.jp/mailman/listinfo/php-users
>PHP初心者のためのページ - 質問する前にはこちらをお読みください
>http://oldwww.php.gr.jp/php/novice.php3


PHP-users メーリングリストの案内