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, вы должны использовать обработчик исключений.
Это именно то, что вам нужно, и как только вы поймете, как это работает, они действительно полезны.

Вот хороший учебник о том, как их использовать;)

Другие вопросы по тегам