导出csv文件的问题

时间:2017-08-24 09:44:51

标签: php arrays csv export

我正在创建一个函数,当您单击按钮时,将数据提交给此函数并作为回报,创建.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),文件将被下载但是为空。如果我将其删除,我的浏览器会告诉我该网站不可用。

我错过了什么?

1 个答案:

答案 0 :(得分: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);