2013-07-11 27 views

回答

4

這取決於你的output_buffering指令在php.ini文件中。如果是Off

output_buffering = Off

然後echo headers_sent()應該輸出1

在其他情況下,headers_sent()不會輸出任何結果,因爲這將是FALSE。標題將不會被髮送,因爲輸出被緩衝。

如果你想解決這個和強制發送標題,你可以使用flush()

希望這會有所幫助!

+0

ok ini_get('output_buffering')顯示4096.但我無法在php.ini中找到該設置,並且ini_set似乎無法使用此選項 – Alex

+0

在php.ini中添加了output_buffering = Off並重新啓動,現在它可以工作:d – Alex

2

閱讀文檔中的評論!

這裏,例如:http://es1.php.net/manual/en/function.headers-sent.php#75835

他做一個偉大的論述:P

編輯

是, headers_sent()能夠返回false,即使你送的東西如果output_buffering與您的php.ini中的Off不同,並且您發送的內容的長度不超過output_buffering的大小,則使用print()或header()。 這在php.ini中留意: 「即使在發送正文內容之後,輸出緩衝功能也允許您發送標題行(包括cookie),以PHP的輸出層速度稍微降低爲代價。」

0

我設法找到一種方法,不停止output_buffering:

if (!headers_sent() && !ob_get_contents()) { 
    // do your thing 
} 
相關問題