在Java中,我使用Scanner逐行读取文本文件,因此内存使用率非常低,因为一次只有一行在内存中。PHP中是否有类似的方法?
使用 fseek、fgets
$handle = fopen("/tmp/uploadfile.txt", "r") or die("Couldn't get handle");
if ($handle) {
while (!feof($handle)) {
$line = fgets($handle);
// Process line here..
}
fclose($handle);
}
fgets($fileHandle)
是你要找的函数。你可以使用 fopen("filename.txt", "r")
获取文件句柄,然后使用 fclose($fileHandle)
关闭它。
4096
参数。这也让我想知道,如果一行超过了这些 4096 字符会发生什么。 - Balmipourfgets($handle, 4096)
改为fgets($handle)
。PHP文档上说第二个参数的作用是:如果没有指定长度,它会一直读取流直到到达行尾。请注意修改回答内容,因为问题是关于逐行读取的。 - mikep