我的云儿时代哦
2015-10-11 17:46php读取大日志文件,怎么玩?
20php读取大日志文件,怎么玩?
急急急急急急急急
本人是一名php新手,刚到公司1周左右...
项目经理给了我一个任务.
用户访问网站产生的日志文件有点大2.5g多(Nginx)
文件是这样的:
2xx.2x.1x7.1x0 - - [20/Jul/2015:16:55:34 +0800] "GET /index.php?s=User&m=User&a=shownotice&id[
0]=exp&id[1]==0))+union+select+1,1,0,5,0,(select%20concat(create_time,get_data)%20from%20log%20where%20content='%E4%BF%AE%E6%94%B9%E7%AE%A1%E7%90%86%E5%91%98'%20order%20by%20id%20desc%20limit%209,1),0,0,0,0+--%20 HTTP/1.1" 200 2153 "http://www.abcc.com/index.php?s=User&m=User&a=shownotice&id[0]=exp&id[1]==0))+union+select+1,1,0,5,0,(select%20concat(create_time,get_data)%20from%20log%20where%20content='%E4%BF%AE%E6%94%B9%E7%AE%A1%E7%90%86%E5%91%98'%20order%20by%20id%20desc%20limit%209,1),0,0,0,0+--%20" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) CometHTTP" -.
这些字符串里有些有SQL注入,有些是访问没成功的.还有后缀名为.js | .css | .jpg
因为日志是一行一行的,只要其中一行包含.js.css.jpg.
请求失败的为 404 成功的是 200,如果成功的就写入到一个新的文本文件里.只要包含.js.css.jpg.png之类的就删掉,好像是404的话就把404给删除了
并且像这样的日期-> [20/Jul/2015:16:55:34 +0800]
转换成正常的年月日,
日志文件的行数在 840万行左右....我用sublime打开我机器都卡死了.****
我想了下用到什么 fopen函数,file_get_contents函数,stream_get_line函数..
不知道咋写...有点着急..项目经理要在**周一 下午完成**...
请各位大牛帮帮忙,最好给点实例..给点思路,给点函数.
我觉得不算抄.抄的好,就是自己的抄懂了..我c币也不多...
谢谢
- 点赞
- 回答
- 收藏
- 复制链接分享
1条回答
为你推荐
- 在服务器上创建从jquery到txt文件的日志文件
- ajax
- logging
- php
- jquery
- post
- 2个回答
- Nginx Centos7 Laravel 5无法写入日志文件[关闭]
- centos7
- laravel
- php
- nginx
- 1个回答
- 可以通过php页面访问/查看mysql日志文件吗?
- mysql
- logging
- php
- 2个回答
- 安全地允许PHP对系统文件的读写访问
- linux
- security
- php
- 1个回答
- 使用PHP从日志文件中提取数据
- php
- 3个回答