Предотвратить аккуратное добавление тегов HTML - PullRequest
13 голосов
/ 26 декабря 2009

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

Так что я пытаюсь использовать tidy для украшения кода (отступ кода, разрывы строк и т. Д.), Единственная проблема, с которой я сталкиваюсь, это генерирование тегов, которые мне не нужны.

Вот код:

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);

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

1 Ответ

30 голосов
/ 26 декабря 2009

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

...