字符串-php读取大日志文件,怎么玩?

问题描述

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币也不多...
谢谢

解决方案

php读取文件
PHP读取超大日志文件
php读取xml文件

解决方案二:

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

时间: 2024-09-17 04:30:22

字符串-php读取大日志文件,怎么玩?的相关文章

io-java执行linux命令从linux服务器上读取log日志文件,按行读从指定字符串开始读

问题描述 java执行linux命令从linux服务器上读取log日志文件,按行读从指定字符串开始读 [INFO ] 2015-09-23 11:22:06,691 [threadPoolTaskExecutor-41] com.sto.pdaplatform.module.rediscommon.core.ParseObjectFactory.getParseObjFactory(ParseObjectFactory.java:27) >>> the original data is

c++-C++读取大数据文件运算并输出

问题描述 C++读取大数据文件运算并输出 用C++读取一个dat文件,大约十几万行,4列,第一列不作处理,对2,34列的数据乘以某个数,然后将运算完成的数据写出到新的文件里.求助大神! 解决方案 不需要定义什么,开两个fstream,一个读一个写就可以了.如要完整代码,请先采纳,并且给出一个测试数据文件的片段和你要的结果文件的片段,写给你. 解决方案二: 用数据库,先把数据放到数据库里面,操作之后再读出取出来. 解决方案三: 我感觉当成图像的RGBA通道处理,,,再结合GPU的处理能力,,很适合

如何在客户端上读取大数据文件(NetCDF格式)

问题描述 如何在客户端上读取大数据文件(NetCDF格式) 小妹这里遇到一个技术问题,请各位大牛不吝赐教啊. 我们现在在做一个小网站,主要实现在客户端上传NETCDF文件,然后再服务器端读入,并对读入数据进行一系列运算后,向客户端返回运算结果,并在客户端显示出来. (NETCDF文件是一种科学数据的文件格式化,需要通过NetCDF 接口函数库来读取文件) 现在我们遇到一个问题,由于NETCDF文件数据量太大(几百兆左右),在服务器端读取NETCDF文件花费的时间太长,影响了页面的操作效率,所以我

用vc++或java每隔一段时间读取一个日志文件(这是一个电话语音接听日志文件,文件内容在随时的增加)后提取有效数据到数据库中

问题描述 用vc++或java每隔一段时间读取一个日志文件(这是一个电话语音接听日志文件,文件内容在随时的增加)后提取有效数据到数据库中,怎么做到从上次读取文件的位置,也就是行数,开始下次的读取.大家知道,java和vc++是通过while()循环来读取文件,我当时的做法是记录上次while()的循环次数,下次读取时先空循环上次记录的行数,然后开始真正的读取文件.看看大伙有没有更好的办法. 解决方案 解决方案二:randomaccessfile+上次读取位置解决方案三:引用1楼inhibitor

如何向solr服务器提交大日志文件

问题描述 现在公司有个项目对日志文件进行全文检索,准备用solr完成.现在遇到一个问题,由于日志的文件比较大,一般10几兆,大的已经达到几百兆了.我们将日志的内容设置为content字段,类型为string,但是当我们将documnet提交到server的时候,就报OOM的错误,请问如何解决该问题? 解决方案 public static void main(String[] args) { try { //Solr cell can also index MS file (2003 versio

SQL Server 2008 收缩清空大日志文件方法总结

由于SQL2008对文件和日志管理进行了优化,所以在SQL2000和2005中可以运行的如下命令,但在SQL2008中不支持no_log清空日志. 1.清空日志  代码如下 复制代码 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务日志:  代码如下 复制代码 BACKUP LOG 库名 WITH NO_LOG SQL 2008收缩清空日志方法: 1.在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完整模式,一定必务要再改回完整模式,不然数据库

RandomAccessFile实时读取大文件(转)

    最近有一个银行数据漂白系统,要求操作人员在页面调用远端Linux服务器的shell,并将shell输出的信息保存到一个日志文件,前台页面要实时显示日志文件的内容.这个问题难点在于如何判断哪些数据是新增加的,通过查看JDK 的帮助文档,java.io.RandomAccessFile可以解决这个问题.为了模拟这个问题,编写LogSvr和 LogView类,LogSvr不断向mock.log日志文件写数据,而 LogView则实时输出日志变化部分的数据. 代码1:日志产生类 import j

MSSQL· 实现分析 · Extend Event日志文件的分析方法

背景 在前两篇月报分享中,6月份月报我们分享了SQL Server实现审计日志功能的方法探索,最终从可靠性.对象级别.可维护性.开销和对数据库系统影响五个方面得出最佳选项Extend Event:7月份月报我们量化分析了使用Extend Event实现审计日志功能对SQL Server本身的性能和吞吐量的影响,结论是对系统性能和吞吐量影响均在0.01%左右:8月份的月报分享是SQL Server审计日志专题的最后一期,探讨Extend Event实现审计日志功能的分析方法汇总,以及这些方法的优缺

ASP读取IIS日志的小程序代码

  ASP读取IIS日志文件的代码,由此你可以编写实现一个IIS日志浏览程序,可读取IIS日志中的访问时间.客户端IP,请求目标.协议状态等内容,如果要读取更多日志内容,你可参考ASP中的MSWC.IISLog对象的一系列方法,本代码只演示如果建立日志读取对象,到最终按列表形式列出日志的每一条内容,方便网站管理员参考. 直接保存上面的代码为一个ASP文件,运行就行了,为了测试方便,这里帖出供测试的IIS日志文件的代码: 请保存上述日志代码为:ex130215.log,注意这个文件名不要错,因为代