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

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

530 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判断某个时间戳(打卡、点餐、签到等)是不是今天记录的

php判断时间戳是不是今天的实现方法:首先创建一个PHP示例文件;指定一个时间,并...

15 1199
PHP怎样正则匹配段落里的图片并提取图片链接?
PHP怎样正则匹配段落里的图片并提取图片链接?

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

19 1016
PHP怎样用正则判断一个链接是内链还是外链?
PHP怎样用正则判断一个链接是内链还是外链?

在日常文章的发表过程中,由于需要引入一些外部链接达到更好的效果与体验。但...

26 1386
当缓存文件大于4KB,不能用cookie时的替代方案就是session
当缓存文件大于4KB,不能用cookie时的替代方案就是session

鸥哥最近在开发一个项目,出于对用户隐私的保护,数据一概不能存储到数据表,而是...

1 575
php多维数组foreach循环
php多维数组foreach循环

多维数组在实际开发中比较常见,要foreach循环也很简单。...

0 505
php正则提取字符串中的数字并打印输出
php正则提取字符串中的数字并打印输出

我们在网站开发的过程中经常需要处理数据,今天讲讲怎样用正则提取字符串中的...

0 486
怎样用php批量删除文件或者文件夹?
怎样用php批量删除文件或者文件夹?

在网站建成后的维护与优化阶段,我们会面临无用栏目/数据处理的问题。量小的...

0 472
PHP基础函数介绍:PHP_EOL
PHP基础函数介绍:PHP_EOL

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

0 581
推荐插件
帝国cms纳米数据接口(足球比赛中最新数据)
帝国cms纳米数据接口(足球比赛中最新数据)

帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...

0 581
帝国CMS内网用户静态站点文章访客统计插件
帝国CMS内网用户静态站点文章访客统计插件

本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...

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

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

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

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

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

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

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

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

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

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

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

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

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