Intereting Posts
Как использовать корпус переключателя в шаблоне Mustache? Список записей, сгруппированных по названию категории Изменение цвета шрифта на основе фона Получить все родительские ключи заданного дочернего ключа в массиве Эффективное копирование / дублирование / резервное копирование таблиц базы данных – mysql PHP Добавление часов, минут, секунд Пользовательский заказ Mysql по алфавиту и по алфавиту: Определение прошедшего времени почему следует предпочесть call_user_func_array над регулярным вызовом функции? Получить имя и описание продукта в шаблонах электронной почты WooCommerce не может вызвать подсветку класса от работника Загрузите класс с другим именем, чем тот, который был передан автозагрузчику в качестве аргумента Если PHP mt_rand () использует более быстрый алгоритм, чем rand (), почему бы просто не изменить rand () для использования более новой реализации? PHP: как включить класс Как аутентифицировать пользователя на индексной странице в Yii

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

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

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

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

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

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

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

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

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

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

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