我正在尝试导出csv文件,但是当我导出文件时,它会在csv中生成chienese文本。
public function actionExportFile()
{
header('Content-Type: text/csv; charset=utf-8');
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
$fp = fopen('file.csv', 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
exit;
}
导出csv我做错了什么。
答案 0 :(得分:2)
您似乎将PHP的2次使用与头文件和文件写入混合在一起。
删除header
行以写入服务器上的文件:
function actionExportFile()
{
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
$fp = fopen('file.csv', 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
exit;
}
或将您的代码更改为:
function actionExportFile()
{
header('Content-Type: text/csv; charset=utf-8');
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
foreach ($list as $fields) {
echo implode( ',', $fields );
}
exit;
}
生成文件下载。