Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Привет,
В php/laravel 5 приложение приходится иметь дело с длинным кусками html-кода, которые выводя экран сложно читать из-за того что они в одну строку.
Нет ли возможности вывести html-строку разнесенную в многострочие с форматированными отступами ?
Спасибо!
Не в сети
Не в сети
Я имел в виду аналог команды
hxnormalize -e test.html
Не в сети
Стандартной функции для этого нет, но в зависимости от требований это можно сделать относительно просто (или сложно).
Для отладки может хватить чего-то такого:
<?php
header('Content-Type: text/html');
$html = '00<a>aa<b>bb<em>zz</em></b>cc</a>dd<i>ee</i>ff';
echo pp($html);
function pp($html) {
$level = 0;
return preg_replace_callback('~<(/?)([^>]+)>~', function ($m) use (&$level) {
$m[1] and --$level;
$indent = str_repeat(' ', $level);
$res = "\n$indent$m[0]\n$indent";
$m[1] or ++$level;
return $res;
}, $html);
}
xml00 <a> aa <b> bb <em> zz </em> </b> cc </a> dd <i> ee </i> ff
Обрати внимание, что добавление пробелов и переводов строк во многих случаях делает вывод HTML не тем, каким он был изначально (где-то появляется лишний пробел или отступ), так что отформатировать его красиво и в то же время с полным сохранением исходного поведения — задача нетривиальная.
Не в сети