PHP 使用生成器处理 CSV 文件

function getRows($file){
    $handle =  fopen($file, 'rb');
    if($handle === false){
        throw new \Exception();
    }

    while (feof($handle) === false) {
        yield fgetcsv($handle);
    }
    fclose($handle);
}

foreach(getRows('data.csv') as $row){
    var_dump($row);
}

上述示例一次只会为 CSV 文件中的一行分配到内存, 而不会把整个文件都读取到内存中

你可能感兴趣的:(PHP 使用生成器处理 CSV 文件)