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

Seto seto @ 1kg.jp
2008年 2月 18日 (月) 09:48:20 JST


Setoです。

> [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)

例えば
まず「 KEY WORDS 」で分割 
        $data = explode( ' KEY WORDS ', $str );
最後の要素を「 ID 」で分割し入れ替え
        $data2 = explode( ' ID ', $data[ count( $data ) ] );
        $data[ count( $data ) ] = $data2[0];
とかすれば$dataの添え字[1]以降に必要な文字列だけが残る
他にstr_posなどを使う方法も考えられますが
explodeだけでも十分可能ですね。

正規表現(自体も含めて)が思いつかない場合は
元データをじっくりと眺めて
解析のためのパターンを探してみると良いと思います。

Junya Seto


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