我使用相同的php腳本,包括和ajax加載。它是一些隨機的目錄項目,可以加載頁面,並可以加載ajax。只有在通過ajax加載時,我才需要使用header()
函數。PHP:如何知道輸出是否已經開始?
當我使用頭功能和輸出已經開始我得到PHP的警告。 PHP如何知道輸出已經開始?什麼是最好的方式來確定,而不是調用標題功能?
謝謝。
我使用相同的php腳本,包括和ajax加載。它是一些隨機的目錄項目,可以加載頁面,並可以加載ajax。只有在通過ajax加載時,我才需要使用header()
函數。PHP:如何知道輸出是否已經開始?
當我使用頭功能和輸出已經開始我得到PHP的警告。 PHP如何知道輸出已經開始?什麼是最好的方式來確定,而不是調用標題功能?
謝謝。
http://php.net/manual/en/function.headers-sent.php
// If no headers are sent, send one
if (!headers_sent()) {
header('...');
exit;
}
一種選擇是調用ob_start()
之初,這buffers all your output。這樣你可以隨時發送標題。
有一個簡單的內置爲:
if (!headers_sent()) {
header('Your header here');
}
沒有更多補充:)
headers_sent()
回報true
如果你不能發送附加頭。
如果您向客戶端發送了任何內容,則開始輸出。
例如,即使是單個html標籤,它已經輸出。
您可以構建應用程序,以便不會發生這種情況, 或者你可以打開輸出緩衝:
代碼開始之前就刪除空行,並添加退出;輸出結束後輸入 。
非常感謝!正是我需要的。順便說一句,爲什麼退出? – SaltLake 2011-01-20 21:31:17
退出的使用直接來自於引用的PHP手冊,用於需要它的'header:Location'調用。在你的情況下,你不應該添加它,否則你會打破輸出。 – tomwalsham 2011-01-20 21:33:13