TCPDF часто использует оператор PHP @ для подавления ошибок.
Поскольку мое приложение использует собственный обработчик ошибок, оно по-прежнему получает эти «подавленные» ошибки.
Как я могу заставить его игнорировать @ -подавленные ошибки?
Я думал выяснить, происходит ли ошибка из TCPDF с использованием backtrace, но ошибка может исходить из строки, не использующей оператор @.
Такая линия выглядит так (л. 6882), например:
if (($imsize = @getimagesize($file)) === FALSE) {
Я спросил Николая Асуни (создателя TCPDF) об этой конкретной ошибке, и он сказал: «Код работает нормально, и ошибка была специально исключена».
Я использую функцию PHP set_error_handler для обработки ошибок.
И следующее: error_reporting (E_ALL); на PHP 5.4
Проверить error_reporting()
внутри обработчика ошибок (вы должны прочитать PHP документация, это объясняет ваш конкретный случай там)
Смотрите пример (адаптировано из PHP DOCS):
function myErrorHandler($errno, $errstr, $errfile, $errline ) {
if (!(error_reporting() & $errno)) {
// This error code is not included in error_reporting or was called with @
return;
}
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler('myErrorHandler');
@strpos();
Других решений пока нет …