我有一個PHP應用程序,並希望在請求結束時調用特定的函數(此函數將信息寫入日誌文件)。實際上,我希望這個函數被最後調用,不管代碼採用什麼路線,也不管之前調用了哪些函數。在請求結束前調用一個特定的函數
有什麼方法可以知道或瞭解PHP何時準備好將信息發送回Web服務器?
function req_end() {
global $logger;
$logger->log("----------------------------------------------", PEAR_LOG_INFO);
$logger->log(" Request End ", PEAR_LOG_INFO);
$logger->log("==============================================", PEAR_LOG_INFO);
$logger->log("", PEAR_LOG_INFO);
}
register_shutdown_function('req_end');
如果我打電話req_end在我的index.php文件的末尾,然後將其寫入日誌,如果不是,它是不是在所有調用。 謝謝 Crouz
感謝您的回答。我知道這個函數,但認爲它不是正確的,因爲儘管我用函數的名稱調用它來寫入日誌,但沒有任何反應,日誌沒有寫入。所以基本上,出於某種原因,它不適合我。 – Crouzilles
但是你的函數運行嗎?如果是這樣,你應該改變你的問題,因爲你的問題涉及到寫入日誌文件,而不是在腳本結束時觸發函數。順便說一句,你可以顯示你的代碼來寫這個日誌文件,我相信你只是把路徑錯誤或一些小錯誤,例如嘗試使用絕對路徑。 – aleation
如果我手動調用該函數,則該函數運行,但如果使用register_shutdown_function調用,則該函數不會運行。我甚至寫了另一個函數來簡單地回顯一些東西,然後用register_shutdown_function註冊它,但它也不會被調用。我已經讀過,這個功能可以在php配置文件中關閉,但我沒有線索尋找什麼,所以我必須做一些搜索。 – Crouzilles