人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

●質問者: esecua
●カテゴリ:ビジネス・経営 コンピュータ
✍キーワード:AAA Hatena PHP コード サーバー
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● izayoimizuki
●20ポイント

http://izayoi.nm.land.to/

十六夜

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;

}

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

◎質問者からの返答

ありがとうございます。

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


2 ● battan
●20ポイント

http://www.yahoo.co.jp/

Yahoo! JAPAN

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”;

}

}

}

?>


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

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

◎質問者からの返答

ありがとうございます。


3 ● ymlab
●20ポイント

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;

}

?>

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ