【问题标题】:csv export filecsv 导出文件
【发布时间】:2011-09-03 08:15:43
【问题描述】:

我想将数据导出为 CSV 文件。 这是我的测试功能

    private function exportToCSV()
{         
      $titles = array('one', 'two', 'three');
      $delimiter = ',';

      $filename = 'simple.csv';
      header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
      header('Content-Description: File Transfer');
      header("Content-type: text/csv");
      header("Content-Disposition: attachment; filename={$filename}");
      header("Expires: 0");
      header("Pragma: public");


      $file = @fopen( 'php://output', 'w' );

      fwrite($file, implode($delimiter, $titles) . "\r\n");

      fclose($file);     
}

我在一个模块中运行这个函数,我得到了带有标题的 csv 文件,但也有整个页面。如何仅获取带有标题的 csv 文件?

【问题讨论】:

  • 如果您能提供一些示例输入和结果输出来证明您遇到的问题,将会很有帮助。
  • 抱歉,我不明白“整页”是什么意思?请多解释
  • “整个页面”是什么意思?网站的其余部分(您在 CMS 环境中吗?)?还是您的意思是您只想要下载对话框而不显示新的空白页面?
  • 是的,这是 CMS 环境,管理面板。当我运行这个函数时,我得到了带有“页面”和标题的文件。
  • 你为什么不直接使用php.net/fputcsv

标签: php file csv


【解决方案1】:

确保您的 CMS 本身没有使用 firebug、Chrome 或 Charles 发送除您的以外的任何标头。

如果您想强制浏览器显示保存对话框,请使用它无法解析的内容类型。大多数浏览器都可以解析“文本/csv”。尝试使用“应用程序/vnd.ms-excel”。任何可以打开excel的应用也可以打开csv文件,不用担心浏览器会做什么。

一些 Internet Explorer 甚至可以在其中打开并显示 excel,但如果用户没有选择自动打开此类文件,他们就不会。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 2018-11-12
    • 2012-09-30
    • 2014-02-03
    • 1970-01-01
    • 2018-07-20
    • 2015-02-04
    相关资源
    最近更新 更多