Intereting Posts
Как ограничить просмотр файлов в каталоге Предупреждение: imagejpeg () : gd-jpeg: библиотека JPEG сообщает о неустранимой ошибке Imap_search очень медленный Magento Моя учетная запись Макет XML Проблема .htaccess разрешает доступ и перенаправление на root index.php только для одного каталога Получить весь лист из сложного XML с атрибутами Laravel не может десериализовать модель с помощью столбца POINT mysql Использовать функцию иногда () в классе запросов Laravel 5 Обработка PHP $ _POST с помощью AngularJS? Изменение всех ссылок на мой сайт: какой лучший способ? mySQL – применить блокировку уровня строки с помощью mysqli Какие коды могут быть в транзакциях PDO? Simultaneusly заполняет несколько выпадающих списков данными из таблицы mysql, используя тот же запрос Невозможно вставитьBefore в файл XML Как игнорировать дублирующее имя и делать первую букву должны быть кепки с помощью вложенного массива?

Как я могу сказать PHP, чтобы давать исключение в качестве исходного текста вместо HTML?

Когда я разрабатываю свой REST API в PHP, я работаю с выходом application/json , поэтому, когда я получаю ошибки при тестировании в браузере, они выглядят так:

 <b>Fatal error</b>: Uncaught exception 'Exception' with message 'PDO caught an error: array(3) { [0]=&gt; string(5) &quot;42000&quot; [1]=&gt; int(1065) [2]=&gt; string(15) &quot;Query was empty&quot; } 

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