PHP打印到浏览器而不是CSV文件

时间:2017-08-07 19:24:06

标签: php export-to-csv fputcsv

尝试使用我们的数据库导出来创建csv文件。这是我使用的代码:

if(isset($_POST["Export"])){

  header('Content-Type: text/csv; charset=utf-8');  
  header('Content-Disposition: attachment; filename=data.csv');  
  $output = fopen("php://output", "w");  
  fputcsv($output, array('ID', 'Name', 'Email', 'Phone'));  
  $query = "SELECT userID, name, email, phone from user ORDER BY userID DESC";  
  $result = mysql_query($query);  
  while($row = mysql_fetch_assoc($result))  
  {  
       fputcsv($output, $row);  
  }  
  fclose($output);  

当我单击导出按钮时,它会在浏览器中加载此PHP页面并显示正确的结果。但是我无法将结果存储在文件中。任何帮助将不胜感激。

5 个答案:

答案 0 :(得分:0)

尝试使用以下内容类型之一:

header('Content-Type: application/vnd.ms-excel');
header('Content-Type: application/octet-stream');

答案 1 :(得分:0)

尝试在文件输出之前发送header("Content-Type: application/force-download");

答案 2 :(得分:0)

您所需要做的就是删除Content-Disposition标头并将Content-Type标头设置为纯文本:

header('Content-Type: text; charset=utf-8');

答案 3 :(得分:0)

确保您的脚本中没有任何其他 printecho 命令。

答案 4 :(得分:-1)

尝试删除fclose($output);行。