ホームページ  >  記事  >  バックエンド開発  >  PHP の通常の解析 Apache ログ ファイル

PHP の通常の解析 Apache ログ ファイル

巴扎黑
巴扎黑オリジナル
2016-11-09 13:28:511834ブラウズ

ログを時間ごとにロールし、PHP の通常のログ分析を使用して問題を解決することができます

$logLine ='127.0.0.1 - - [22/May/2015:17:09:13 +0800] "GET /sale/images/y-select.png HTTP/1.1" 200 1095';
$pattern = &#39;/^(?P<ip>[0-9.]+) - - \[(?P<time>[^\]]+)\]+ "GET (?P<url>[^ ]+) HTTP\/1.[1|0|2]" (?P<status>[0-9.]+) (?P<size>[0-9.]+)/i&#39;;
preg_match($pattern, $log, $match);
//var_dump($match);
$ip     = $match[&#39;ip&#39;];
$time   = strtotime($match[&#39;time&#39;]);
$url    = $match[&#39;url&#39;];
$status = $match[&#39;status&#39;];
$size   = $match[&#39;size&#39;];
printf("IP:%s 访问时间:%s URL:%s 状态:%s 文件尺寸:%s",$ip,$time,$url,$status,$size);

これも行うことができます

正規表現を使用して Apache ログ ファイルを区切ります

www.MyException.Cn ネットユーザーの共有日: 2015-08 -26 閲覧数: 17 回

Apache ログ ファイルを区切るには正規表現を使用します
一般的なログ形式の Apache ログ ファイルの例:

127.0.0.1 - Frank [10/Oct/2000:13:55:36 -0700] ] "GET /apache_pb.gif HTTP/1.0" 200 2326

結合ログ形式の Apache ログ ファイルの例:

127.0.0.1 - Frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb .gif HTTP/ 1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.08 [en] (Win98; I ;Nav)"



クライアントの IP アドレス。
client identd プロセスによって決定される RFC1413 ID (アイデンティティ)、出力内の記号「-」は、ここでの情報が無効であることを示します。
Web ページにアクセスするために HTTP 認証システムによって取得されるクライアント ID (ユーザー ID)。Web ページがパスワードで保護されていない場合、この項目は「-」になります。
サーバーがリクエストの処理を完了する時刻。
クライアントのアクションによって要求されたリソースによって使用されるプロトコル。
サーバーからクライアントに返されるステータス コード。
応答ヘッダーを除いてクライアントに返されるバイト数。情報が返されない場合、この項目は「-」になります。
「リファラー」リクエストヘッダー。
「User-Agent」リクエストヘッダー。
情報の抽出に使用される正規表現は次で構成されます:

^: 各行の先頭と一致します。
([0-9.]+)s: IP アドレスと一致します。
([w.-]+)s: 数字、文字、アンダースコア、またはドット区切り文字で構成される ID と一致します。
([w.-]+)s: 数字、文字、アンダースコア、またはドット区切り文字で構成されるユーザー ID と一致します。
([[^[]]+])s: マッチング時間。
"((?:[^"]|")+)"s: リクエスト情報の照合。エスケープされた二重引用符が二重引用符で囲まれている場合があります。
(d{3})s: ステータス コードの照合。 s: 応答バイト数または - と一致します。
"((?:[^"]|")+)"s: 「Referer」リクエスト ヘッダーと一致します。エスケープされた二重引用符が二重引用符内に表示される場合があります。
"((?:[^"]|")+)": 「User-Agent」リクエスト ヘッダーと一致し、二重引用符内にエスケープされた二重引用符が含まれる場合があります。
$: 行末と一致します。最終式は次のようになります:

^([0-9.]+)s([w.-]+)s([w.-]+)s([[^[]]+])s"(( ?:[ ^"]|")+)"s(d{3})s(d+|-)s"((?:[^"]|")+)"s"((?:[^" ]|" )+)"$

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。