php – 我的csv导出显示html,如何摆脱?
作者:互联网
我之前见过这个问题,在尝试了一些解决方案之后我无法正常工作.问题是我无法正确地将数据导出为csv格式.在我添加我的ob_end_clean之前,它会导出到带有html的csv,现在它不会给我一个csv,只是文本.
这是我需要的文件代码.
if (isset($_POST["hidden"])) {
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
$fp = fopen('php://output','w');
foreach ($list as $row) {
ob_end_clean();
fputcsv($fp, $row);
}
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
}
现在当我进行导出时,数据会被放回到屏幕上,类似于var_dump().我只是想让它转到一个csv文件而不需要全部使用html.
解决方法:
搞定了!
我在页面上的任何内容之前调用了我的csv代码. :)然后我连接到我的表,然后我的代码的逻辑.我的主文件中没有ob_start或ob_flush,这有很大的不同.我在while循环之前有ob_clean然后在声明头之后我做了一个exit().希望,这很好地解释了它.
这是我的代码.
if (isset($_POST["hidden"])) {
$sql = "SELECT * FROM `newsletter`";
$result = mysql_query($sql);
ob_end_clean();
$fp = fopen('php://output','w');
while ($list = mysql_fetch_assoc($result)) {
fputcsv($fp, $list);
}
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
exit();
}
标签:export-to-csv,php,mysql,csv 来源: https://codeday.me/bug/20191001/1838080.html