我的云儿时代哦 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读取超大日志文件,可以看看,我是又涨见识了

    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能