2011-09-03 141 views
1

我想将数据导出为CSV文件。 这是我的测试功能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文件?

+1

如果您可以提供一些示例输入和结果输出来演示您遇到的问题,这将会很有帮助。 – Trott

+0

对不起,但我不明白什么意思'整页以及'?请更多解释 – ZigZag

+0

你对“整个页面”的含义是什么?网站的其他部分(你是否在CMS环境?)? 或者你的意思是说你只想下载对话框而不显示新的空白页面? – hbit

回答

1

确保您的CMS本身没有发送任何标题,除了使用萤火虫或Chrome或Charles的标题。

如果您想要强制浏览器显示保存对话框,请使用它无法解析的内容类型。大多数浏览器都可以解析'text/csv'。尝试使用'application/vnd.ms-excel'。任何可以打开excel的应用程序也可以打开csv文件,所以不用担心浏览器会做什么。

一些互联网探险家甚至可以打开并显示其中的Excel,但如果用户没有选择自动打开这些文件,他们不会。