3 回答
TA贡献1852条经验 获得超7个赞
但是我不得不补充;在Content-Disposition标头的末尾。如果没有它,浏览器将在文件名的末尾添加两个破折号(例如,文件不是“ export.csv”,而是另存为“ export.csv--”)。可能会尝试在标题行的末尾清理\ r \ n。
正确的行应如下所示:
header('Content-Disposition: attachment;filename="'.$filename.'";');
如果CSV中包含UTF-8字符,则必须通过更改Content-Type行将编码更改为UTF-8:
header('Content-Type: application/csv; charset=UTF-8');
另外,我发现使用rewind()代替fseek()更优雅:
rewind($f);
感谢您的解决方案!
TA贡献1828条经验 获得超3个赞
尝试... csv下载。
<?php
mysql_connect('hostname', 'username', 'password');
mysql_select_db('dbname');
$qry = mysql_query("SELECT * FROM tablename");
$data = "";
while($row = mysql_fetch_array($qry)) {
$data .= $row['field1'].",".$row['field2'].",".$row['field3'].",".$row['field4']."\n";
}
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="filename.csv"');
echo $data; exit();
?>
- 3 回答
- 0 关注
- 333 浏览
添加回答
举报