我想知道是否有人知道如何在 PHP 中做到这一点。我正在运行一个脚本,该脚本涉及打开一个文件,获取前 1000 行,用这些行做一些事情,然后 php 文件打开它自己的另一个实例以获取接下来的 1000 行,依此类推,直到它到达文件的末尾. 我正在使用 splfileobject 以便我可以寻找到某一行,这使我可以很好地将其分解为 1000 行块。我遇到的最大问题是性能。我正在处理具有超过 10,000,000 行的文件,虽然它在前 10,000 行左右的速度非常快,但在那之后会出现巨大的指数放缓,我认为只需要寻找到那一点即可。
我想做的是读取前一千行,然后从文件中删除它们,以便我的脚本始终读取前一千行。有没有办法在不将文件的其余部分读入内存的情况下做到这一点。我见过的其他解决方案包括将每一行读入一个数组,然后删除前 X 个条目,但是有一千万行会占用太多内存和时间。
如果有人有可以加快性能的解决方案或其他建议,将不胜感激。