我想知道是否有人知道如何在PHP中完成此操作。我正在运行一个脚本,它涉及到打开一个文件,取第1000行,用这些行做一些事情,然后php文件打开另一个自己的实例,以获取下一千行,直到它到达文件末尾。我使用的是splfileobject,这样我就可以找到一条特定的路线,这使我能够很好地将它分解为1000行。我遇到的最大问题是性能问题。我正在处理的文件数量超过10,000,000行,虽然它的前10000行很快,但在这一点之后,我认为只需要寻找那一点就会出现巨大的指数级放缓。从文件中删除第一个X行PHP
我想要做的是读取第一千行,然后从文件中删除它们,以便我的脚本始终读取第一千行。有没有办法做到这一点,而无需将文件的其余部分读入内存。我看到的其他解决方案包括将每行读入一个数组,然后删除第一个X条目,但有一千万条线路会消耗太多的内存和时间。
如果任何人有解决方案或其他建议,可以加快性能,将不胜感激。
你*想*时间正在寻求? – salathe 2012-03-26 18:24:01
我评论了迭代行计数器的行,以便它始终运行前1000行,并且它以更快的速度运行。此外,随着它的进展,这个速度会呈指数级下降,唯一改变的就是它寻求的路线。 – 2012-03-26 18:27:48
寻求不应该*指数*更多的时间。放缓的规模是什么? – salathe 2012-03-26 18:30:42