使用PHP逐行读取大文件


Reading large files with PHP line by line?

我做了一项研究,在许多地方提到使用fgets()。好的,但我需要设置一个读取字节的限制,我无法确定我的行不会超过我设置的限制。我说得对吗?还有其他解决方案吗?

我唯一的另一个想法是使用fgetc(),但必须有更好的解决方案。。。

来自手册:

读取length - 1字节、换行符(包含在返回值中)或EOF(以先到者为准)后,读取结束如果没有指定长度,它将继续从流中读取,直到到达行的末尾

在大文件上使用fgetc函数绝对不是一个好主意a) 它会更慢b) 你应该手动处理所有事情,这会导致错误(例如不同的行结尾)

至于原始任务,有时值得将您的输入转换为另一种格式,这有利于快速阅读。例如,如果可能的话,可以拆分超长的行。