【问题标题】:Issues with exporting a csv file导出 csv 文件的问题
【发布时间】:2017-08-24 09:44:51
【问题描述】:

我正在创建一个函数,当您单击按钮时,将数据提交给此函数,然后创建一个 .csv 文件并让浏览器下载它。我遵循了可以在网上找到的大量教程,但也许我把事情搞混了:

header("Content-Type: application/x-excel");
header("Content-disposition: attachment; filename=export".date('d-m-Y') .".csv");
header('Expires : 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');

$list = array
  (
    "Peter,Griffin,Oslo,Norway",
    "Glenn,Quagmire,Oslo,Norway",
  );

$file = fopen("contacts.csv","w");


foreach ($list as $line) {
    fputcsv($file,explode(',',$line));
}

die($file);

readfile($file);

请记住,这些不是我的真实数据,我只是想在继续之前设置所有内容,因为我有 50 行数组要处理。

使用此代码,如果我保留die($file),文件将被下载但为空。如果我删除它,我的浏览器会告诉我该网站不可用。

我错过了什么?

【问题讨论】:

    标签: php arrays csv export


    【解决方案1】:

    试试这个

    header('Content-Type: application/excel');
    header('Content-Disposition: attachment; filename="sample.csv"');
    $data = array(
        "Peter,Griffin,Oslo,Norway",
        "Glenn,Quagmire,Oslo,Norway",        
    );
    
    $fp = fopen('php://output', 'w');
    foreach ( $data as $line ) {
        $val = explode(",", $line);
        fputcsv($fp, $val);
    }
    fclose($fp);
    

    【讨论】:

    • 好的,它没有按原样工作,但我在fclose($fp) 之后添加了die(readfile($fp)) 并且它工作了(我在另一个 SO 帖子的某个地方看到了这个),但非常感谢!
    猜你喜欢
    • 2019-08-10
    • 1970-01-01
    • 2012-03-14
    • 2020-11-08
    • 2017-01-22
    • 2021-03-05
    • 2017-03-03
    • 2016-04-12
    • 2018-06-22
    相关资源
    最近更新 更多