在PHP中逐行读取大文件

时间:2011-07-26 12:43:47

标签: php

在Java中,我使用Scanner逐行读取文本文件,因此内存使用率非常低,因为内存只有一行在内存中。 PHP中有类似的方法吗?

2 个答案:

答案 0 :(得分:14)

使用fseek,fgets

$handle = fopen("/tmp/uploadfile.txt", "r") or die("Couldn't get handle");
if ($handle) {
    while (!feof($handle)) {
        $buffer = fgets($handle, 4096);
        // Process buffer here..
    }
    fclose($handle);
}

Reading very large files in PHP

答案 1 :(得分:2)

fgets($fileHandle)正是您正在寻找的。您使用fopen("filename.txt", "r")获取文件句柄,然后使用fclose($fileHandle)将其关闭。