2017-08-24 109 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