我想将数据导出为CSV文件。 这是我的测试功能
private function exportToCSV()
{
$titles = array('one', 'two', 'three');
$delimiter = ',';
$filename = 'simple.csv';
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header('Content-Description: File Transfer');
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename={$filename}");
header("Expires: 0");
header("Pragma: public");
$file = @fopen( 'php://output', 'w' );
fwrite($file, implode($delimiter, $titles) . "\r\n");
fclose($file);
}
我在一个模块中运行这个函数,我正在获取带有标题的csv文件,但整个页面也是如此。如何只获得带有标题的csv文件?
答案 0 :(得分:1)
确保CMS本身没有使用firebug或Chrome或Charles发送任何标题。
如果要强制浏览器显示保存对话框,请使用无法解析的内容类型。大多数浏览器都可以解析'text / csv'。尝试使用'application / vnd.ms-excel'。任何可以打开excel的应用程序也可以打开csv文件,所以不用担心浏览器会做什么。
有些Internet浏览器甚至可以在其中打开并显示excel,但如果用户没有选择自动打开这些文件,则不会。