php正則解析apache記錄檔檔案

來源:互聯網
上載者:User
可以把日誌按小時滾動,採用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 = '/^(?P[0-9.]+) - - \[(?P[^\]]+)\]+ "GET (?P[^ ]+) HTTP\/1.[1|0|2]" (?P[0-9.]+) (?P[0-9.]+)/i';preg_match($pattern, $log, $match);//var_dump($match);$ip     = $match['ip'];$time   = strtotime($match['time']);$url    = $match['url'];$status = $match['status'];$size   = $match['size'];printf("IP:%s 訪問時間:%s URL:%s 狀態:%s 檔案尺寸:%s",$ip,$time,$url,$status,$size);

也可是這樣

運用Regex分隔Apache記錄檔

www.MyException.Cn 網友分享於:2015-08-26 瀏覽:17次

使用Regex分隔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地址。
由用戶端identd進程判斷的RFC1413身份(identity),輸出中的符號"-"表示此處的資訊無效。
HTTP認證系統得到的訪問該網頁的客戶標識(userid),如果網頁沒有設定密碼保護,則此項將是"-"。
伺服器完成請求處理時的時間。
客戶的動作\請求的資源\使用的協議。
伺服器返回給用戶端的狀態代碼。
返回給用戶端的不包括回應標頭的位元組數.如果沒有資訊返回,則此項應該是"-"。
"Referer"要求標頭。
"User-Agent"要求標頭。
用來提取資訊的Regex組成:
^ :匹配每一行的開頭。
([0-9.]+)\s :匹配IP地址。
([\w.-]+)\s :匹配identity,由數字字母底線或點分隔字元組成。
([\w.-]+)\s :匹配userid,由數字字母底線或點分隔字元組成。
(\[[^\[\]]+\])\s :匹配時間。
"((?:[^"]|\")+)"\s :匹配請求資訊,雙引號中可能出現轉義的雙引號\"。
(\d{3})\s :匹配狀態代碼。
(\d+|-)\s :匹配響應位元組數或-。
"((?:[^"]|\")+)"\s :匹配"Referer"要求標頭,雙引號中可能出現轉義的雙引號\"。
"((?:[^"]|\")+)" :匹配"User-Agent"要求標頭,雙引號中可能出現轉義的雙引號\"。
$ :匹配行尾。
最終的運算式如下:
^([0-9.]+)\s([\w.-]+)\s([\w.-]+)\s(\[[^\[\]]+\])\s"((?:[^"]|\")+)"\s(\d{3})\s(\d+|-)\s"((?:[^"]|\")+)"\s"((?:[^"]|\")+)"$

以上就介紹了php正則解析apache記錄檔檔案,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.