为了账号安全,请及时绑定邮箱和手机立即绑定

如何从php脚本创建和下载csv文件?

如何从php脚本创建和下载csv文件?

PHP
白衣非少年 2019-12-11 13:09:34
我是一个新手程序员,我搜索了很多有关我的问题的内容,但是找不到关于此的有用的解决方案或教程。我的目标是我有一个PHP数组,并且数组元素显示在页面上的列表中。我想添加一个选项,以便用户如果需要,他/她可以创建带有数组元素的CSV文件并下载。我不知道该怎么做。我也搜索了很多。但尚未找到任何有用的资源。请为我提供一些教程或解决方案或建议以自己实施。由于我是新手,请提供易于实施的解决方案。我的数组看起来像:Array(    [0] => Array        (            [fs_id] => 4c524d8abfc6ef3b201f489c            [name] => restaurant            [lat] => 40.702692            [lng] => -74.012869            [address] => new york            [postalCode] =>             [city] => NEW YORK            [state] => ny            [business_type] => BBQ Joint            [url] =>         ))
查看完整描述

3 回答

?
慕姐4208626

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);

感谢您的解决方案!



查看完整回答
反对 回复 2019-12-12
?
倚天杖

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();

?>



查看完整回答
反对 回复 2019-12-12
  • 3 回答
  • 0 关注
  • 333 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信