2017-08-24 60 views
0

我创建了一个函数,当您单击某个按钮时,将数据提交给此函数,并作为回报,创建一个.csv文件并使浏览器下载它。我跟着那个可以在网上找到的教程量庞大,但也许我混淆的事情:导出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); 

记住只要保持,这些都不是我真正的DATAS,我只想之前设置好一切继续,因为我有50行数组要处理。

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

我错过了什么?

回答

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

好吧,这并不像是工作,但我接着说:死(ReadFile的($ FP))FCLOSE($ FP)之后'''权,它的工作(我看到这在另一个SO帖子上),但非常感谢你! – Jaeger