从PHP数据创建CSV文件未关闭

时间:2016-01-29 09:56:38

标签: php csv export

我有一个创建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();

我已经关闭了文件并刷新了缓冲区,所以我哪里出错?

干杯

戴夫

1 个答案:

答案 0 :(得分:0)

如果要将csv文件发送到客户端,则应在传送数据后退出脚本。

...
ob_flush();
exit();

如果您不是exit()die(),您脚本的任何输出都将添加到客户端的csv文件中。