我以前见过这个问题,在尝试了多种解决方案后我无法让它正常工作。问题是我无法将数据正确导出为 csv 格式。在我添加我的 ob_end_clean 之前,它会导出到带有 html 的 csv,现在它没有给我一个 csv,只是文本。
这是我在所需文件上的代码。
if (isset($_POST["hidden"])) {
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
$fp = fopen('php://output','w');
foreach ($list as $row) {
ob_end_clean();
fputcsv($fp, $row);
}
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
}
现在,当我进行导出时,数据会以类似于 var_dump() 的方式重新显示在屏幕上。我只是想让它转到一个 csv 文件,而不是整个 html。