【发布时间】:2017-08-07 19:24:05
【问题描述】:
尝试使用从我们的数据库中导出的内容创建 csv 文件。这是我使用的代码:
if(isset($_POST["Export"])){
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen("php://output", "w");
fputcsv($output, array('ID', 'Name', 'Email', 'Phone'));
$query = "SELECT userID, name, email, phone from user ORDER BY userID DESC";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
{
fputcsv($output, $row);
}
fclose($output);
当我单击导出按钮时,它会在浏览器中加载此 PHP 页面并显示正确的结果。但是我无法将结果存储在文件中。任何帮助将不胜感激。
【问题讨论】:
-
这些标题正是我创建 CSV 下载的方式(虽然没有 utf-8,但这应该不是问题)。可能的问题:首先验证标头已发送到浏览器(F12 然后网络选项卡),在设置标头之前可能的(不需要的)输出会破坏它们(也会在您的 error_log 中引发警告)。第二:尝试引用文件名
filename="data.csv",以确保,第三:尝试另一个浏览器以验证这不是浏览器错误(你的不会是第一个) -
嘿@PetervanderWal,感谢您的回复。 1. 我在预览中看到所有数据库数据的正确标题。 2. 尝试引用文件名,但不幸的是,什么也没有。 3. 在 Chrome 和 Firefox 中尝试过
标签: php export-to-csv fputcsv