透過設定 HTTP 標頭,將陣列資料輸出為 CSV 格式並觸發瀏覽器下載。
<?php
// 範例資料
$rows = [
[1, '測試資料一'],
[2, '測試資料二'],
[3, '測試資料三'],
[4, '測試資料四'],
];
// 組裝 CSV 內容(簡易版,未處理欄位內含逗號/換行/雙引號)
$csv = '';
foreach ($rows as $row) {
$csv .= implode(',', $row) . "\n";
}
// 可選:轉碼為 Big5/GBK 相容 Excel 中文環境
// $csv = mb_convert_encoding($csv, 'Big5', 'UTF-8');
// 發送下載標頭
header('Content-Type: text/csv; charset=UTF-8');
header('Content-Disposition: attachment; filename="export_' . date('Ymd_His') . '.csv"');
header('Pragma: no-cache');
header('Expires: 0');
echo $csv;
exit;
?>
<?php
$fp = fopen('php://output', 'w');
// 寫入 BOM 讓 Excel 正確識別 UTF-8
fwrite($fp, "\xEF\xBB\xBF");
foreach ($rows as $row) {
fputcsv($fp, $row); // 自動處理逗號、雙引號、換行跳脫
}
fclose($fp);
exit;
?>
Content-Type: text/csv:宣告 MIME 類型。Content-Disposition: attachment; filename="...":觸發下載並指定檔名。charset=UTF-8:建議加上 BOM (\xEF\xBB\xBF) 確保 Excel 正確開啟中文。