2012-03-26 77 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,则标头已经熄灭,您不能再取消它们。