PHPはジェネレータを使用してCSVファイルを処理する
387 ワード
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ファイルの1行のみがメモリに割り当てられ、ファイル全体がメモリに読み込まれません.