PHP выдаёт не отформатированный вывод, как исправить?
Столкнулся с такой проблемой что при выводе массива или объекта браузер выдаёт не отформатированную строку, и по итогу вместо того чтобы получить то что на этом скриншоте:
я получаю вот такого формата вывод где приходится тщательно разыскивать каждый элемент:
Проблема меня преследует еще с начала изучения PHP, но теперь когда начал переходить к реальным проектам - данная проблема крайне сильно мешает жить, буду крайне благодарен если сможете помочь).
IDE: PHPStorm
Браузер: Google Chrome, EDGE
Версия PHP: 8.1
Ответы (2 шт):
Вывод данных в браузере зависит от заголовка ответа сервера
Content-Type, который сообщает браузеру какого типа данные передаются, например text/plain или text/html, тут больше примеров.
По умолчанию, данные выводимые PHP-скриптами, веб-сервер считает HTML-кодом и отправляет их с соответствующим заголовком Content-Type: text/html, поэтому браузер трактует эти данные как HTML, т.е. игнорируются повторяющиеся пробельные символы и переносы строк.
Решить проблему можно несколькими способами:
- использовать тег pre, который сохраняет исходную разметку текста
- устанавливать заголовок
header("Content-Type: text/plain");, который сообщит браузеру, что это простой текст, а не HTML-код. Но это не поможет, если заголовки уже были отправлены https://www.php.net/manual/ru/function.headers-sent.php - использовать специализированный инструмент, например Xdebug
Сделайте так будет красиво показать
echo '<pre>';
var_dump($data);
echo '</pre>';