我从php导出到csv时遇到问题。当我导出到csv它工作正常。我可以打开它并编辑它。但是,当我想要“保存为”编辑过的文件时,它会将另存为Unicode文本(.txt)
我想直接保存为CSV。导出的文件名具有CSV扩展名。这是我的代码:
$filename = "export-".date("d-m-Y").".csv";
ob_end_clean();
$filePath = 'php://output';
header('Content-Encoding: UTF-8');
header('Content-Type: application/csv; charset=UTF-8');
header('Content-Disposition: attachement; filename="'.$filename.'";');
$f = fopen($filePath, 'w');
echo "\xEF\xBB\xBF"; // UTF-8 BOM
$header = array();
// GET CURRENT HEADERS
foreach ($data[0] as $key => $value) {
array_push($header,$key);
}
fputcsv($f, $header, $delimiter);
//unset($data['headers']);
foreach ($data as $line) {
fputcsv($f, $line, $delimiter);
}
fclose($f);
我尝试了几个不同的标题,但都没有。我用Google搜索并搜索了Stackoverflow,但我似乎是唯一遇到此问题的人。有人熟悉这个吗?
答案 0 :(得分:0)
查看UTF-8 BOM。
有类似问题,删除BOM会阻止此行为,但需要确认UTF-8字符仍然正确显示等。尚未完全测试。