我的云儿时代哦 2015-10-11 17:46 采纳率: 0%
浏览 1631
已结题

php读取大日志文件,怎么玩?

php读取大日志文件,怎么玩?

急急急急急急急急

本人是一名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条回答 默认 最新

  • qujsh 2015-10-12 02:28
    关注

    robot-N 的 php读取超大日志文件,可以看看,我是又涨见识了

    评论

报告相同问题?

悬赏问题

  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区
  • ¥20 jupyter保存图像功能的实现
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示
  • ¥15 NAO机器人的录音程序保存问题
  • ¥15 C#读写EXCEL文件,不同编译
  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键