逐行读取大文件或将其行存储在数组中

sam*_*old 6 php arrays file

我有一个大文件,100,000行.我可以读取每一行并处理它,或者我可以将这些行存储在一个数组中然后处理它们.我更喜欢使用数组来获得额外的功能,但我真的很关心与在数组中存储多行相关的内存使用情况,以及它是否值得.

Age*_*rum 3

有两个函数您应该熟悉。

第一个是file(),它将整个文件读入一个数组,每一行作为一个数组元素。这对于较短的文件很有用,并且可能不是您想要在 100k 行文件上使用的。该函数处理自己的文件管理,因此您不需要自己显式打开和关闭文件。

第二个是fgets(),您可以使用它一次读取一行文件。只要有更多行要处理,您就可以使用它进行循环,并在循环内运行行处理。您需要使用fopen()来获取此文件的句柄,您可能希望自己跟踪文件指针以进行恢复管理(即,如果出现问题并且脚本失败,您不必从头开始处理)等。

希望这足以让您开始。