Предотвратите порядок ввода 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, которая в этом случае также добавит косую черту для пустого элемента ввода.