我有一个创建CSV文件的php文件...但是。 CSV文件的内容也包括整个html页面。
结果如下:
Number, Access Code, Date
1, 1BIs1B1165n8xba, 29/01/2016
2, 1BIPa%1166vwG&M, 29/01/2016
3, 1BIKES11677GhK0, 29/01/2016
4, 1BIX$T11682w&&@, 29/01/2016
5, 1BIq2N1169npOn5, 29/01/2016
<!DOCTYPE html>
<html dir="ltr" lang="en" xml:lang="en">
<head>
...
...
...
</html>
这是代码。
ob_clean();
$filename="export.csv";
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private', false);
header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename=' . $filename);
if(isset($associated_array['0'])) {
$fp = fopen('php://output', 'w');
fputcsv($fp, array_keys($associated_array['0']));
foreach($associated_array AS $values){
fputcsv($fp, $values);
}
fclose($fp);
}
ob_flush();
我已经关闭了文件并刷新了缓冲区,所以我哪里出错?
干杯
戴夫
答案 0 :(得分:0)
如果要将csv文件发送到客户端,则应在传送数据后退出脚本。
...
ob_flush();
exit();
如果您不是exit()
或die()
,您脚本的任何输出都将添加到客户端的csv文件中。