PHP: Показать пользовательскую ошибку внутри тела
Я хочу добавить пользовательские ошибки во многих местах в некоторых интерфейсах, которые я создаю. Просто использование эха внутри моей функции размещает этот код поверх тега на моей странице. Итак, я построил пользовательскую функцию для обработки ошибок и дал мне обратную трассировку, но, опять же, она печатается выше на моей странице.
Вот функция, которую я использую:
function error($msg) {
trigger_error($msg, E_USER_WARNING);
echo '<pre>';
debug_print_backtrace();
echo '</pre>';
}
Как я могу заставить свои ошибки печатать внутри тегов моей страницы?
Или есть лучший способ сделать это?
2 ответа
Как бы я отложил ошибки печати? В идеале я хотел бы иметь здесь ошибки, которые всегда будут помещаться в тело в случае ошибки
Я не уверен, полностью ли я следую за тем, что вы делаете, но, может быть, это так?
<?php
class ErrorHandler
{
static private $errors = null;
static function report( ... /* see set_error_handler() for params */ )
{
self::$errors .= "...";
return true;
}
static function getErrors()
{
return self::$errors;
}
}
set_error_handler(array('ErrorHandler', 'report'));
// ...
echo "<div>".ErrorHandler::getErrors()."</div>
?>
Если на вашем сервере работает php5, вы должны использовать обработчик исключений.
Это именно то, что вам нужно, и как только вы поймете, как это работает, они действительно полезны.