如何有效地跳转到文件中的特定行?

时间:2011-10-26 19:35:00

标签: php performance file io

我知道我可以逐行阅读this function的文件,然后我可以做if($line_no < $X) continue;这样的事情,但我想知道是否有更高效的内容?这些可能是我正在阅读的一些可能很大的文件,我不想将所有内容都放入一个巨大的数组中,其中大部分都是我要忽略的。

1 个答案:

答案 0 :(得分:1)

PHP无法使用行号跳转到特定行,无需额外处理。如果要跳过 bytes 的数量,则只需使用fseek()

如果仅使用file()耗尽内存是一个问题,我无法帮助您,但您可以使用:

$file = array_slice(file(__FILE__), __LINE__ - 1));

获取所需行之后的行,而不添加任何不必要的内存。即使在大文件上也应该相对较快。

如果仍然不够,您可能需要考虑使用其他语言。