2012-05-15 32 views
2

我正在尋找一種簡單的方法來將數組轉換爲CSV並讓用戶能夠下載CSV,而不用保存CSV到服務器。直接從陣列輸出到CSV而不保存到CSV文件

+0

是否有任何特殊原因導致無法保存到服務器? – MetalFrog

+0

[this]怎麼樣(http://stackoverflow.com/a/2897650) - 不是php –

回答

4
header("Content-type: application/csv"); 
header("Content-Disposition: attachment; filename=test.csv"); 
$fp = fopen('php://output', 'w'); 
foreach ($array as $row) { 
    fputcsv($fp, $row); 
} 

看到fputcsv()

使用fputcsv的好處是它會處理和逃逸爲你封閉領域,確保有效的,堅固的輸出。不幸的是,它不能輸出到一個字符串,所以我寫入php的輸出流。如果你需要在輸出之前訪問它,你也可以寫'php:// memory',然後你可以像讀取文件一樣讀取它。

包裝上的信息http://www.php.net/manual/en/wrappers.php.php

4
header("Content-type: application/csv"); 
header("Content-Disposition: attachment; filename=test.csv"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 

echo "name,city,street\n"; 

有時,最好使用

header("Content-Type: application/octet-stream"); 

的IE瀏覽器...