2012-11-19 63 views
0

扭曲并打开这个小时现在,无法弄清楚如何使它有所了解。标题()问题。打印整个HTML文档,而不是变量

林在PHP文件工作轮6000行...

有多个头()被执行我的开关罩头调用之前调用。

如果我使用ob_start(),header()调用将起作用。和ob_end_flush();在文档的顶部和底部。

出于某种原因,我不明白,这样的:

$csv = urldecode($source['csv']); 
$filename = urldecode($source['file']);  

header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Content-Disposition: attachment; filename=$filename"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 

print $csv; 
break; 

输出完整的HTML文档,而不是只在$ CSV可变至极应该打印和保存客户端浏览器的.csv文件。

想法? :)

注意:调用是从一个PHP文件 - >发布 - > $ csv和$文件名,它们都是$ _POST []。

+1

显示全部代码 –

+0

为什么会涉及HTML文档?要么输出CSV或HTML,不能同时输出。 – deceze

+0

这就是我想知道的,变量只包含CSV格式的数据,但它的.csv文件包含和CSV数据。 – JazzCat

回答

3

使用exit而不是break

否则其他代码可以执行。

+0

我更喜欢'死;'。我可以少输一个字母。 –

+0

它在开关柜中。休息通常是标准的? – JazzCat

+0

“break”在切换的情况下是正确的。但是,在通过header()传递文件以退出代码执行之后,也是很重要的!所以使用'exit;'在那之后'break;'。 – powtac