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