下载鸥 > 网站下载 > 开发教程 > PHP

PHP 正则匹配日志信息 并存入数据库

512 2021-04-13 15:06:01

收藏
日志分析许多人可能不在意,但养成查看日志的习惯,可以让你对网站的情况有充分的了解,如蜘蛛抓取频次、抓取页面、404页面、高频访问页面、高频访问ip、异常ip等等重要信息。网上的日志分析工具在我看来不够好用,所以琢磨自己写一个。

这里参考了csdn网友花与爱丽丝lxb的一个日志分析源码,转发给需要的朋友。
 
<?php
$DB_logs = Db::name('filelog');
$DB_logs->where('id', '>', 0)->delete();
//逐行读取数据
$file = "./filelogs/u_ex200102.log";
$handle = file($file);
for ($i = 0; $i < count($handle); $i++) {
//    除了正则外 还可以 以空格分开数据
//  日志格式  匹配时完全匹配  注意认真对照
//  $log = '2020-01-02 00:14:09 172.17.79.157 GET /hy/n235.htm - 443 - 23.234.223.202 Mozilla/5.0+(Linux;u;Android+4.2.2;zh-cn;)+AppleWebKit/534.46+(KHTML,like+Gecko)+Version/5.1+Mobile+Safari/10600.6.3+(compatible;+Baiduspider/2.0;++http://www.baidu.com/search/spider.html) 200 0 0 421';
    $pattern = '/^(?P<date>[0-9-]{10}) (?P<time>[0-9:]{8}) (?P<sip>[0-9.]+) GET (?P<url>[^ ]+) (?P<query>[^ ]+) (?P<port>[0-9]+) (?P<username>[^ ]+) (?P<ip>[0-9.]+) (?P<ua>[^s]+) (?P<end1>[0-9]+) (?P<end2>[0-9]+) (?P<end3>[0-9]+) (?P<end4>[0-9]+)/i';
    $res = preg_match($pattern, $handle[$i], $match);
    if ($res) {
        $data['id'] = $i + 1;
        $data['ip'] = $match['ip'];
        $data['time'] = $match['date'] . ' ' . $match['time'];
        $data['url'] = $match['url'];
        $data['ua'] = $match['ua'];
        $DB_logs->insert($data);
    }
}

本文地址:https://xzo.com.cn/develop/php/801.html

有帮助,很赞!

信息来源:下载鸥
导出教程 下载word版教程
发表评论 共有条评论
关于PHP

PHP是一种服务器端、跨平台、html嵌入式的脚本语言,其功能十分强大、入门简单。在过去,民间一直有说法称“PHP是最好的编程语言”,是PHP开发者对自身所使用语言的肯定。

PHP曾是最主流的网站web开发语言之一,现在也依然十分流行。

推荐PHP开发教程
PHP怎样正则匹配段落里的图片并提取图片链接?
PHP怎样正则匹配段落里的图片并提取图片链接?

在程序开发的过程中,我们可能需要提取段落里的图片用作缩略图。那么,这个正则...

19 992
一句话防御首页带问号?的垃圾链接分权重
一句话防御首页带问号?的垃圾链接分权重

任何站点但凡有点流量就会遇到这种情况:首页被人用问号传了参数,恰恰还被收录...

1 548
PHP怎样实现从数组随机取值的效果?
PHP怎样实现从数组随机取值的效果?

在开发过程中,我们很多时候会接到猜你喜欢的随机展示效果。这个随机,用php取...

1 402
怎样在每次发起请求时重置session_id?
怎样在每次发起请求时重置session_id?

在一些开发场景中,我们需要在每次发起请求后更新重置session_id以同步用户数...

3 456
php分割中文字符源码分享与可行性分析
php分割中文字符源码分享与可行性分析

php分割中文字符,之前计划的是可用于搜索结果、tag结果关键词标红。但在实际...

0 502
php基础应用:获取今天是星期几并给变量赋值
php基础应用:获取今天是星期几并给变量赋值

在网站的开发过程中,我们经常需要获取今天是星期几,并根据星期的不同而进行不...

0 453
什么是高并发,与CPU,内存,分布式有什么关系
什么是高并发,与CPU,内存,分布式有什么关系

我们在网站开发的过程中经常会接触到高并发这个概念,但高并发到底是什么,具体...

1 456
PHP基础函数介绍:PHP_EOL
PHP基础函数介绍:PHP_EOL

PHP_EOL是一个相当好用的函数,可自动适配多种换行格式,在实际的应用中体验非...

0 561
推荐插件
帝国cms百度AI图像无损放大api接口对接插件
帝国cms百度AI图像无损放大api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像无损放大的功能。经过...

0 524
帝国cms访问统计ip地址链接与封禁插件下载
帝国cms访问统计ip地址链接与封禁插件下载

下载鸥开发了这款帝国cms封禁ip插件,自动记录访问情况,让我们可以更快的识别...

0 1169
帝国cms智能自动审核按星期几审核指定栏目带推送插件
帝国cms智能自动审核按星期几审核指定栏目带推送插件

采集站的必备资源是自动审核,要做到日收录也离不开定时发布。而本插件的自动...

0 1378
帝国cms批量添加后台用户插件
帝国cms批量添加后台用户插件

使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...

0 867
帝国cms网站会员登录与退出历史记录日志插件
帝国cms网站会员登录与退出历史记录日志插件

帝国cms默认只有上次登录时间与ip,没有一个记录清单,所以今天,我们分享这个帝...

0 477
帝国cms百度AI图像清晰度增强api接口对接插件
帝国cms百度AI图像清晰度增强api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像清晰度增强的功能。经...

0 588
帝国cms百度文字识别ocr接口对接插件
帝国cms百度文字识别ocr接口对接插件

许多网站会做一些小功能小插件给客户使用以增强用户黏性,比如图片转文字,这种...

0 530
帝国cms联想词搜索高级搜索插件下载
帝国cms联想词搜索高级搜索插件下载

帝国CMS自带的搜索功能虽然强大,但也有很强的局限性 -- 必须关键词完全匹配...

0 855
客服QQ:341553759
扫码咨询 常见问题 >
官方交流群:90432500
点击加入