导出 csv 文件的问题

Issues with exporting a csv file

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

我错过了什么?

试试这个

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);