Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 03.06.2017 18:51:00

вывести html-строку разнесенную с форматированными отступами

Привет,
В php/laravel 5 приложение приходится иметь дело с длинным кусками html-кода, которые выводя экран сложно читать из-за того что они в одну строку.

Нет ли возможности вывести html-строку разнесенную в многострочие с  форматированными отступами ?

Спасибо!

Не в сети

#2 04.06.2017 11:10:34

Re: вывести html-строку разнесенную с форматированными отступами

Не понятно, что и как ты хочешь вывести? Приведи пример.

Простой текст с сохранением пробелов выводится в <pre>, либо можно вывести в любой тег, задав стиль white-space (pre-wrap, nowrap и др.).

Не в сети

#3 05.06.2017 18:34:35

Re: вывести html-строку разнесенную с форматированными отступами

Я имел в виду аналог команды

hxnormalize -e test.html 

отсюда
https://www.maketecheasier.com/manipula … mmnad-line

Не в сети

#4 05.06.2017 22:20:32

Re: вывести html-строку разнесенную с форматированными отступами

Стандартной функции для этого нет, но в зависимости от требований это можно сделать относительно просто (или сложно).

Для отладки может хватить чего-то такого:

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

Можно посмотреть в сторону HTML Tidy (расширение для PHP).

Не в сети

Подвал раздела