請確保您有以下設置:
error_reporting(E_ALL); // or possibly: E_ALL & ~E_NOTICE
ini_set('display_errors', TRUE);
ini_set('scream.enabled', TRUE); // this overrides the @ operator
如果你想要的任何錯誤,以阻止腳本的執行,然後定義錯誤處理功能:
function my_error_handler($errno, $errstr, $errfile, $errline, $errcontext) {
file_put_contents(
'custom_log_file.log',
'#'.$errno.' '.$errfile.':'.$errline.' '.$errstr
);
// throw new Exception('#'.$errno.' '.$errfile.':'.$errline.' '.$errstr);
die('#'.$errno.' '.$errfile.':'.$errline.' '.$errstr);
}
set_error_handler('my_error_handler');
如果您選擇拋出異常從你的錯誤處理函數(這很可能你不會期望被捕獲 - 它們只是爲了調試目的),你可以設置一個異常處理程序。
function my_exception_handler() {
// here you code some nice visuals for your error handling
}
set_exception_handler('my_exception_handler');
在這兩種情況下,你可以var_dump(debug_backtrace());
看到發生錯誤的數據上下文。
如果PHP文件是第一次訪問(即它的URL位於瀏覽器的地址欄中),並且它有語法錯誤,則無錯誤報告機制會顯示該錯誤。
您可以使用linux CLI php -l filename.php
來檢查文件中的語法錯誤。或者你可以創建另一個文件x.php,其中只包含一個包含到filename.php
。
別忘了[error_reporting](http://php.net/manual/en/errorfunc.configuration.php#ini.error-reporting) –
實際的錯誤可能是一個權限問題 – Cfreak
你有沒有檢查過日誌文件?它是一個共享主機?如果是這樣,你可以去控制面板,應該有一個工具來顯示訪問/錯誤日誌(PHP,Apache等)祝你好運! –