自定义CSV导出器-无法修改标题信息-标题

时间:2016-04-01 作者:Katherine

在我的管理仪表板中,我创建了一个自定义模块,用于使用自定义查询进行报告筛选。我需要添加另一个功能,将这些结果导出到CSV。我尝试创建一个非常简单的csv导出示例。

ob_end_clean();
$output .= \'column 1\'. \',\';
$output .= \'column 2\'. \',\';

$output .="\\n";
$output .=\'"data 1",\';
$output .=\'"data 2",\';
$output .="\\n";

$file = "custom_table";
$filename = $file."_".date("Y-m-d_H-i",time());

header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");

echo $output;
不幸的是,它产生了一个错误。

Warning: Cannot modify header information - headers already sent by (output         started at C:\\xampp\\htdocs\\rtlcbsasia\\wp-admin\\includes\\template.php:1947) in C:\\xampp\\htdocs\\rtlcbsasia\\wp-content\\plugins\\wpdm-reports\\wpdm-reports.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at C:\\xampp\\htdocs\\rtlcbsasia\\wp-admin\\includes\\template.php:1947) in C:\\xampp\\htdocs\\rtlcbsasia\\wp-content\\plugins\\wpdm-reports\\wpdm-reports.php on line 39

Warning: Cannot modify header information - headers already sent by (output started at C:\\xampp\\htdocs\\rtlcbsasia\\wp-admin\\includes\\template.php:1947) in C:\\xampp\\htdocs\\rtlcbsasia\\wp-content\\plugins\\wpdm-reports\\wpdm-reports.php on line 40
column 1,column 2, "data 1","data 2",
任何帮助都将不胜感激。提前感谢

1 个回复
最合适的回答,由SO网友:Milo 整理而成

您不能使用header 将内容发送到浏览器后,已发送标题。您的代码在其显示的管理页面的一部分已经输出到浏览器后运行。您可以通过将输出代码移动到与较早运行的内容挂钩的函数中来解决此问题,如admin_init, 或使用admin_post action.