2012-03-26 78 views
6

我想知道,如果它能夠清除()存儲在header_list當前信息清除先前設定的頭PHP的

if(headers_sent()){ 
    foreach(headers_list() as $header){ 
     header_remove($header); 
    } 
} 
var_dump(headers_list()); 
+0

標題發送後? – MitMaro 2012-03-26 23:40:43

+0

如果發送標題,刪除它們沒有多少意義(如果可以的話),因爲它們已經發送。 – Hamish 2012-03-26 23:41:00

+0

可能根據[php.net](http://php.net/header_remove),但只能從版本5.3.0 - 你甚至可以刪除由php本身生成的頭文件 – poncha 2012-03-26 23:43:23

回答

14

headers_sent表示現在刪除標題爲時已晚。他們已經發送。因此這個函數的名字。

你想要的是專門檢查標題是否有而不是尚未發送。然後你知道修改它們是安全的。

if (!headers_sent()) { 
    foreach (headers_list() as $header) 
    header_remove($header); 
} 
4

您只能刪除,如果他們不已經發出了頭。如果headers_senttrue,則標頭已經熄滅,您不能再取消它們。