2013-03-14 37 views
0

正如你可能已經知道,在PHP中的錯誤處理程序可以通過使用PHP的ErrorHandler - 錯誤計數

的set_error_han dler()

我做我自己的錯誤處理功能所取代,當我得到所有的錯誤時我想做點什麼。

截至目前,每發生一次錯誤,就會執行自定義錯誤處理函數

那麼,怎樣才能知道它是否是最後一個錯誤,所以我可以執行一個html腳本。

+0

直到腳本退出無法知道它是最後一個錯誤,所以從錯誤處理程序存儲以前的數據,並只輸出它作爲您的腳本的最後一個階段 – Anigel 2013-03-14 17:25:52

回答

1

我懷疑你正在尋找register_shutdown_function()

註冊腳本執行完畢或 退出後要執行的回調()被調用。

但你最好確保如果你想處理一氣呵成的所有錯誤回調函數不會觸發任何錯誤的xD

+0

是不是我想到的,但它實際上找到了工作,非常感謝。一整天都在掙扎! :d – Jazerix 2013-03-14 18:07:44

0

(這意味着你將失去以前的錯誤是致命發生的文化知名度錯誤 - 因此我不建議對這個),然後註冊一個sutdown功能,只是通過你的錯誤處理積累數據,那麼在你關機功能報告錯誤....

<?php 

$mylog="started\n" 

function logit() { 
    global $mylog; 
    if ($mylog) { 
     file_put_contents(tmpnam('/var/log/php', 'err'); 
    } 
} 

register_shutdown_function('logit'); 
function whoops() 
{ 
    global $mylog; 
    $mylog.="something bad happenned\n"; 
} 
set_error_handler('whoops'); 
.... 

(這都可以用做自動預定文件)