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 文件中的一行分配到内存, 而不会把整个文件都读取到内存中
网友评论