Предотвратите порядок ввода html-тегов

У меня есть класс, который генерирует некоторые html (элементы формы и элементы таблицы), но этот класс возвращает все html в одной строке.

Итак, я пытаюсь использовать опрятный способ украсить код (отступ от кода, поместить разрывы строк и т.д.), единственная проблема, с которой я столкнулась, - это также генерировать теги, которые я не хочу.

Вот код:

tidy_parse_string(
                    $table->getHtml(),
                    array(
                            'DocType' => 'omit',
                            'indent' => true,
                            'indent-spaces' => 4,                                    
                            'wrap' => 0                                    
                        )
                );

Единственный способ, которым я нашел удаление дополнительных html-тегов, - это добавить str_replace, что-то вроде этого:

str_replace(array('<html>','</html>','<body>','</body>','<head>','</head>','<title>','</title>'),'', code);

Что работает, но я действительно прыгаю, было бы способ показать, что можно просто украсить код и не вставлять лишний код.

Ответ 1

Попробуйте параметр show-body-only.

например.

$s = '<form method="post" action="?"><table><tr><td><input tpye="submit"></table>';
echo tidy_parse_string($s, array('show-body-only'=>true, 'indent'=>true));

печатает

<form method="post" action="?">
  <table>
    <tr>
      <td>
        <input tpye="submit">
      </td>
    </tr>
  </table>
</form>

(строка исправлена ​​и отступом, но не добавлена ​​оболочка html/body). Может быть объединен с опцией output-xhtml, которая в этом случае также добавит косую черту для пустого элемента ввода.