Цитата(sergejzr @ 29.8.2007, 14:17 ) | | А как обработать все ошибки? |
Фатальные ошибки можно обработать методом Котерова http://dklab.ru/lib/PHP_CodeFilter/ . Синтаксические... только если перед инклюдом отдельно проверять синтаксис. К примеру через отдельный вызов интерпретатора
| Код | $out = `php -l $fileName`; // Далее парсим $out на наличие ошибок
|
Цитата(sergejzr @ 29.8.2007, 14:17 ) | | Вообще, меня интересует логгинг ошивок в файл |
А чем не устраивает стандартные логи ошибок PHP?
Цитата(sergejzr @ 29.8.2007, 14:17 ) | | И вопрос 2, вышеописанным способом ловятся даже ошибки, спрятянные оператором @. Как бы их отфильтровать? |
Способ только один - проверять значение настройки "error_reporting". При возникновении ошибки в выражении с @, это значение всегда будет равняться 0.
| Код | function error_handler($errorType, $message) { if (ini_get("error_reporting") == 0) return; // ... }
|
Или же еще лучше сверять его с текущим типом ошибки
| Код | function error_handler($errorType, $message) { if ((ini_get("error_reporting") & $errorType) != $errorType) return; // ... }
|
|