Im將php數組導出到csv。將數組導出到CSV ini使用特殊字符的PHP
的錯誤是,所有的特殊字符都搞砸了(例如:A E N),並顯示文件的開始FIELD1,而不是FIELD1。
由於內容處置:附件;,如果我評論該行,該文件創建沒有任何問題(遺憾的是,它被下載爲FILENAME .php擴展名)。
# CSV headers
header('Cache-Control: public');
header('Content-Type: application/octet-stream');
header('Content-type: application/csv; charset=utf-8');
header('Content-disposition: attachment; filename='.date('Y-m-d H\hi').'.csv');
# Columns
$o = 'field1,field2,field3,field4';
$o .= "\n";
# Data
$rows = array();
foreach($data as $item) {
$fields = array();
foreach($item as $field) {
$fields[] = $field;
}
$rows[] = implode(', ', $fields);
}
$o .= implode("\n", $rows);
echo $o;
任何想法?謝謝!
是BOM。 –
您應該考慮在文件名周圍使用雙引號:'filename =''。date('Y-m-d H \ hi')。'。csv「''另外,爲什麼要設置兩種不同的內容類型? –
我在Sublime2(osx)中工作。該文件是utf-8,沒有BOM。 – andufo