2012-11-19 62 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