Php 已发送邮件头,导出csv,can';我不能下载这个文件

Php 已发送邮件头,导出csv,can';我不能下载这个文件,php,csv,header,Php,Csv,Header,我正在写一个基本脚本,根据数据库信息下载csv文件, 在我的dashboard/index.php中,我使用GET和switch来包含页面 所以当我点击linkdashboard.php?link=export.php 我有一个包含所有数据的表格,在那个里我有一个链接,我可以下载我的csv文件,我的问题是当我点击export.csv时,我有一个文本输出,并没有下载文件,所以我把这些代码放在下面: header("Content-type: text/csv"); header("Content-

我正在写一个基本脚本,根据数据库信息下载csv文件, 在我的dashboard/index.php中,我使用GET和switch来包含页面 所以当我点击linkdashboard.php?link=export.php 我有一个包含所有数据的表格,在那个里我有一个链接,我可以下载我的csv文件,我的问题是当我点击export.csv时,我有一个文本输出,并没有下载文件,所以我把这些代码放在下面:

header("Content-type: text/csv");
header("Content-Disposition: attachment; filename={$filename}.csv");
header("Pragma: no-cache");
header("Expires: 0");
但我总是看到文本格式的内容,并且有一个错误

Warning: Cannot modify header information - headers already sent by (output started at /home/*/public_html/dev/dashboard/index.php:78) in /home/*/public_html/dev/dashboard/component/export.php on line 39
因此,我问如何解决这个问题,我可以删除export.php中的索引头并在那里设置一个新的头来下载文件或什么extacly 也许我只需要在export.php中将内容类型更改为text/csv 但是alrady发送了text/html。 请帮助解决此问题
谢谢

如您所见,index.php文件(包括export.php文件)中已经有一些内容发送到输出(打印)


确保在打印标题之前没有打印任何内容。在某些情况下,开头之间可能有一个空格
不要在标题之前添加任何内容在我从数据库获取记录的情况下。
如果您有下载csv的功能,请在功能顶部添加以下标题,如:

function exportCsv($date) {
            header('Content-Type: text/csv; charset=utf-8');
            header('Content-Disposition: attachment; filename=data.csv');
.
.
.
.
}

可能重复感谢您的回答,我确实尝试切换包含案例,但我得到错误500内部服务器错误我不明白为什么……:|,我已经打印了数据表,我将用
标题_remove()导出到csvtry中这可能对您的情况有所帮助,但我肯定在您的语句之前会有一些输出。您是否可以使用浏览器进行测试,以查看实际的标题(Chrome->F12->单击导出,并根据您的请求查看网络选项卡)。有两个选项-某些内容已打印或设置,或者某些标记之间有空格。在index.php的第78行中有什么?在index.php的第78行中我有一个,index.php上的函数header_list()?link=export.php给我这个结果数组([0]=>X-Powered-By:php/5.4.39[1]=>Content-type:text/html)我想我需要在这里更改导出中的内容类型,否则我不知道!!!!:我一直在忙这个