Когда я разрабатываю свой REST API в PHP, я работаю с выходом application/json
, поэтому, когда я получаю ошибки при тестировании в браузере, они выглядят так:
<b>Fatal error</b>: Uncaught exception 'Exception' with message 'PDO caught an error: array(3) { [0]=> string(5) "42000" [1]=> int(1065) [2]=> string(15) "Query was empty" }
И становится все хуже, когда я получаю большие трассировки стека и прочее. Итак, есть ли флаг, который я могу установить, говоря PHP, что я хочу, чтобы мои ошибки не были сохранены и в необработанном тексте?
Это параметр php.ini
называемый html_errors
.
В php.ini вы можете установить три разных параметра, чтобы изменить способ отображения ошибок HTML.
html_errors
error_prepend_string
Строка для вывода перед сообщением об ошибке error_append_string
Строка для вывода после сообщения об ошибке В своей среде разработки я использую следующее:
html_errors = On error_prepend_string = "<pre>" error_append_string = "</pre>"
Может быть какой-то параметр конфигурации, который я не могу найти для этого – я подозреваю, что есть, так как HTML отсутствует в командной строке.
Грязная работа – передать строки через html_entity_decode(strip_tags($str))
.
EDIT Как отметил Энди Питерс (он, очевидно, лучше читает документы, чем я), для этого можно использовать параметр конфигурации html_errors
. Я оставлю этот ответ здесь, если по какой-то причине вы не можете изменить это, но вы, вероятно, должны принять его ответ.