Подтвердить что ты не робот

Удаление doctype при сохранении domdocument

Я разбираю и извлекаю html-документы в DOMDocument. Эти документы представляют собой дочерние формы, которые будут отображаться внутри другой страницы. Сохраняя анализируемые DOMDocuments, он автоматически добавляет теги doctype, html, head и body. так как я работаю над дочерними формами, я бы хотел удалить все эти и сохранить только дочерние теги формы.

Как я могу пропустить автоматическую генерацию html, head, body и других тегов при сохранении domdocument?

4b9b3361

Ответ 1

Получил это сам после прочтения сотен ссылок. надеюсь, что это поможет другим парням...

return preg_replace('/^<!DOCTYPE.+?>/', '', str_replace( array('<html>', '</html>', '<body>', '</body>'), array('', '', '', ''), $objDOM->saveHTML()));

Подробно: http://www.php.net/manual/en/domdocument.savehtml.php

Ответ 2

То же, что и @KoolKabin, но немного короче:

return preg_replace('~<(?:!DOCTYPE|/?(?:html|body))[^>]*>\s*~i', '', $dom->saveHTML());

Ответ 3

Как и в PHP 5.4 и Libxml 2.6, в настоящее время существует более простой подход: когда вы загружаете html в качестве этого

$html->loadHTML($content, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); 

на выходе не будет тегов doctype, html или body. источник