(PHP関連)ソースお願いいたします。


サーバー上においてあるaaa.logというログファイルがあり2<>3<>hatena のようなログが入っています。

たとえば引数から3番目の値を判別し(2<>3<>hatenaの場合hatena) ログ内にある初めの数字値(2<>3<>hatenaの場合2)を取得し表示させるスクリプトコードをお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/01/04 00:40:50
  • 終了:--

回答(3件)

id:izayoimizuki No.1

izayoimizuki回答回数302ベストアンサー獲得回数02006/01/04 02:45:08

ポイント20pt

function getlogValue($file_name,$word) {

$log = file ($file_name);

$j = ”0”;

for ($i = ”0”; $i < count($log); $i++) {

$log3 = explode (”<>”, $log[$i]);

if (ereg ($word, $log3[”2”])) {

$Value[$j] = $log3[”0”];

$j++;

}

}

return $Value;

}

こんな感じでいかがでしょうか?

id:esecua

ありがとうございます。

あと数件回答があるので実際に動かして最もよかった回答にポイントを差し上げます。

2006/01/04 04:54:58
id:battan No.2

battan回答回数63ベストアンサー獲得回数12006/01/04 02:53:05

ポイント20pt

URLはダミーです。


PHP4.3.11で動作テストしてます。

「”」「¥」「<」「>」は半角に置換してください。


ログファイル

aaa.log

1<>2<>atena

2<>3<>hatena

3<>2<>etc


検索するプログラム

search.php

<?

# ログファイル名指定

$logFileName = ”./aaa.log”;

# 検索対象文字の設定

$searchKey = ”hatena”;


# ファイルのオープン

$fp = fopen($logFileName, ”r”);


if($fp){

while (!feof($fp)){

$buffer = fgets($fp, 1024);

   # 取得したレコードの分割

list ($code, $etc, $key) = split (’<>’, $buffer);

   # 余分なコードの削除

$key = trim($key);

if($key == $searchKey){

      echo ”Code: $code<br>¥n”;

}

}

}

?>


ご質問の内容をそのまま単純に書くとこんな感じです。

ログ解析に使われるのであればサブルーチン化するなど手を加えなければならないかと思います。

id:esecua

ありがとうございます。

2006/01/04 04:57:05
id:ymlab No.3

ymlab回答回数508ベストアンサー獲得回数342006/01/04 02:53:31

ポイント20pt

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k05.htm

PHP 基礎編5 - 文字列関数 substr、strlen、strpos、split、list、time、crypt - SAK Streets

文字列関数 list を使えばいいのではないでしょうか。


<?php

$fp = fopen(’./aaa.log’,’r’);

if ( $fp == null ) {

print ”[Error] aaa.log Terminated.”;

return false;

}


while ( $row = fgets( $fp, 1024 ) ) {

$row = trim( $row );

list( $first, $second, $third ) = explode(”<>”, $row);

//値が$thirdに入っています。

//print ”値は${third}¥n”;

print $first;

}

?>

id:esecua

ありがとうございました。

2006/01/04 23:51:37

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません