Но есть несколько вопросов, касающихся анализа, то есть то, что я отправляю в Domdocument, не всегда возвращается в той же форме
Вот список: < /p>
[*] Использование -> loadhtml: < /p>
- Форматирует мой документ Независимо от настройки SearReerWhiTespace и FormatOutput (потерю пробелов в предварительно образованном тексту)
- дает мне ошибки, когда у меня есть теги HTML5, такие как , < /code> и т. Д. Но они могут быть подавлены, поэтому я могу жить с этим. element (с тегом самозакрытия), после анализа/savehtml вывод будет
[*] Использование -> loadxml: < /p>
Кодирует такие объекты, как> < /code> from < /code> или теги: body> div становится Body & gt; div
Все теги закрыты одинаково, например, становится ; но это может быть исправлено с помощью режима. Но я бы предпочел Domdocument вместо пользовательского анализатора по причинам производительности < /p>
Обновление: < /h1>
Таким образом, как медмонстр, упомянутый с использованием CDATA, решает основную проблему с Loadxml. < /p>
Есть ли какой -нибудь способ предотвратить самостоятельное закрытие всех пустых HTML Теги, кроме определенного набора, без использования Regex?
Код: Выделить всё
$html = $dom->saveXML($node);
$html = preg_replace_callback('#]*)\s*/>#s', function($matches){
// ignore only these tags
$xhtml_tags = array('br', 'hr', 'input', 'frame', 'img', 'area', 'link', 'col', 'base', 'basefont', 'param' ,'meta');
// if a element that is not in the above list is empty,
// it should close like `` (for eg. empty ``)
return in_array($matches[1], $xhtml_tags) ? "" : "";
}, $html);
Подробнее здесь: https://stackoverflow.com/questions/107 ... omdocument
Мобильная версия