`
vtrtbb
  • 浏览: 361389 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

php正则解析apache日志文件文件

    博客分类:
  • php
阅读更多

可以把日志按小时滚动,采用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<ip>[0-9.]+) - - \[(?P<time>[^\]]+)\]+ "GET (?P<url>[^ ]+) HTTP\/1.[1|0|2]" (?P<status>[0-9.]+) (?P<size>[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);

 

 也可是这样

运用正则表达式分隔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地址。
由客户端identd进程判断的RFC1413身份(identity),输出中的符号"-"表示此处的信息无效。
HTTP认证系统得到的访问该网页的客户标识(userid),如果网页没有设置密码保护,则此项将是"-"。
服务器完成请求处理时的时间。
客户的动作\请求的资源\使用的协议。
服务器返回给客户端的状态码。
返回给客户端的不包括响应头的字节数.如果没有信息返回,则此项应该是"-"。
"Referer"请求头。
"User-Agent"请求头。
用来提取信息的正则表达式组成:

^ :匹配每一行的开头。
([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"((?:[^"]|\")+)"$

 

分享到:
评论

相关推荐

    日志文件压缩包.zip

    这段代码首先定义了一个正则表达式来解析Apache的访问日志格式,然后读取并解析文件中的每一行。`analyze_logs`函数计算了每种HTTP请求的次数,并返回最常见的请求及其出现次数。 此外,如果日志文件过大,我们可能...

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    Apache日志分析.php Apache日志分析 第17章(/17/) JSPExample1.jsp JSP页面中整型数据的使用 JSPExample2.jsp JSP页面中循环输出整型数据 JSPExample3.jsp 计算一光年的距离 ...

    php+apache课件

    1. **PHP作为Apache模块**:理解如何将PHP集成到Apache中,通过LoadModule指令加载mod_php模块,使得Apache可以直接解析PHP文件。 2. **FastCGI模式**:了解另一种PHP与Apache的集成方式——FastCGI,提高服务器...

    Linux上apache的安装文件

    pcre-8.30.zip包含了版本8.30的源代码,允许Apache服务器在URL重写、日志格式化等场景中使用复杂的正则表达式。 在Linux上安装Apache的基本步骤如下: 1. **解压文件**:首先,你需要将所有压缩文件解压到一个目录...

    apache 2.2

    例如,`mod_php`模块用于在Apache服务器内部直接解析和执行PHP代码,提高性能。 2. **线程支持**:Apache 2.2支持多线程模型(MPM,Multi-Processing Modules),如`prefork`和`worker` MPM,其中`worker`模式是...

    Apache2.2中文文档

    7. **MIME类型**:通过AddType指令,可以将不同扩展名的文件与特定的MIME类型关联,确保浏览器正确解析内容。 8. **URL重写**:mod_rewrite模块允许通过正则表达式实现URL重写,这在SEO优化和隐藏真实路径时非常...

    日志管理系统

    2. **数据解析**:PHP提供了强大的字符串处理和正则表达式功能,可以解析日志文件中的各种格式,提取出关键信息。 3. **数据库存储**:为了便于后续的分析和查询,PHP可以将日志信息存储到数据库(如MySQL)中。...

    Java正则表达式详解

    **3.1 日志文件解析** 在Web服务器的日志文件中,每条日志记录通常包含时间戳、客户端IP地址等信息。假设我们要从BEA WebLogic服务器的日志文件中提取客户端的IP地址,可以使用以下的正则表达式: ``` \b(?:\d{1,3}...

    Apache中文手册

    1. **配置文件**:Apache的主要配置文件是`httpd.conf`,其中定义了服务器的基本设置,如端口号、服务器根目录、日志文件位置等。通过修改此文件,我们可以定制服务器的行为。 2. **虚拟主机**:Apache支持虚拟主机...

    apache编译参数介绍

    - 说明:rotatelogs用于日志文件的滚动操作,方便日志文件管理和分析。 21. **--enable-static-logresolve** - 用途:启用静态版本的logresolve工具。 - 说明:logresolve能够将日志文件中的IP地址转换为域名...

    apache安装包(apache-heep2.4.27-pcre8.35-apruntil1.4.1-apr1.1.5.)

    在Apache中,PCRE用于解析和执行URL重写规则、访问日志格式和其他与HTTP请求相关的正则表达式。版本8.35包含了该库的一组功能和修复,确保了高效和准确的正则表达式匹配。 3. **apr-1.4.5**:APR(Apache Portable ...

    Apache Rewrite Module 的重定向问题

    可以利用`ErrorLog`等日志文件来追踪Rewrite引擎的工作过程,以便发现问题并及时调整。 通过上述介绍,我们可以看到Apache Rewrite Module提供了非常灵活且强大的URL重写功能,但同时也需要开发者具备一定的正则...

    基于PHP的股票网整站(带采集)源码.zip

    实际内容可能包括PHP源文件、数据库配置文件、HTML/CSS/JavaScript前端文件、配置文件、日志文件、数据采集脚本等。 【详细知识点】 1. **PHP基础**:理解PHP语法,变量声明、控制结构(如if-else、switch)、函数...

    PHP实例开发源码—LogAnalyzer Web前端工具.zip

    1. **文件操作**:LogAnalyzer首先需要读取日志文件,这就涉及到PHP的文件系统函数,如`file_get_contents()`或`fopen()`、`fgets()`等,用于逐行读取和处理大量日志数据。 2. **日志解析**:不同的日志格式(如...

    PHP实例开发源码—PHP搜索引擎蜘蛛跟踪器.zip

    6. **异常处理**:处理可能遇到的各种错误情况,如日志文件不存在、格式不正确等。 7. **安全性考虑**:确保跟踪器不会对服务器性能造成影响,并防止恶意用户的滥用。 8. **代码结构与设计模式**:良好的代码组织和...

    基于PHP的EMS邮件快递单号查询 php 版.zip

    【压缩包子文件的文件名称列表】: 132699464387979704 这个文件名可能是项目中的一个主文件或者日志文件,但由于没有提供具体的文件类型或详细信息,我们只能推测。通常在PHP项目中,这样的数字字符串可能代表时间戳...

    PHP实例开发源码—PHP版网站状态监控.zip

    2. 错误日志监控:系统可能会读取服务器的日志文件,如PHP错误日志、Apache日志或Nginx日志,寻找可能的错误信息,如语法错误、警告或致命错误。这可以通过file()或file_get_contents()函数读取文件内容,然后使用...

    apache中访问不了伪静态页面的解决方法

    这允许Apache服务器解析`.htaccess`文件,从而应用重写规则。请注意,这一步骤可能需要根据你的具体环境进行调整,比如在某些配置中,重写规则可能需要在全局配置文件而不是虚拟主机配置文件中启用。 创建`....

    我的CGI框架,基于apache的

    1. **配置文件管理**:基于minixml库,框架提供了格式化的配置文件读取和解析,使得配置更加直观和易于维护。 2. **参数处理**:利用cgicc库,框架能够解析和提取HTTP请求中的参数,支持格式化处理。 3. **参数...

Global site tag (gtag.js) - Google Analytics