我正在使用内置的 fputcsv 函数通过标准输出 (php://output) 输出一个大的 csv 文件,但是在写入大约 14000 行后出现内存错误。
我调用 ob_end_clean 不使用输出缓冲区,但它不起作用。此外,我尝试在每 X 行之后刷新输出缓冲区,但它是相同的。
这是我的代码片段:
function outputCSV($data) {
ob_end_clean(); //Delete buffer contents and disable output buffering
$outstream = fopen("php://output", "w");
function __outputCSV(&$vals, $key, $filehandler) {
fputcsv($filehandler, $vals);
}
array_walk($data, "__outputCSV", $outstream);
fclose($outstream);
}