Intereting Posts
Помогите проверить, работает ли прокси-сервер, используя php хотите отправлять и получать данные json в php Цель не является реальной. Laravel 5 – поставщик услуг привязки к приложениям Конфигурация Autoload не загружает классы MongoDB Laravel 5.2 | запросите от многих до многих к одному Как программно проверить, повреждено ли изображение (PNG, JPEG или GIF)? Есть ли у PHP функция, которая возвращает правильное расширение файла с учетом допустимого типа содержимого? регулярное выражение php preg_replace, которое соответствует нескольким строкам Фильтр Yii2 на родственной модели, где имя отношения ниже camelCase Два амперсанда между функциональными вызовами Расширения PHP не будут загружаться при запуске Apache PHP hash_hmac не соответствует примеру AWS Signature 4 введите неизвестное количество полей в mysql – лучшая структура для этого? что я могу сделать, чтобы оптимизировать следующую функцию или какую-то другую вещь, чтобы уменьшить потребление памяти? PHP: как найти наиболее используемый ключ массива?

Как получить html-код узла DOMElement?

У меня есть этот html-код:

<html> <head> ... </head> <body> <div> <div class="foo" data-type="bar"> SOMECONTENTWITHMORETAGS </div> </div> </body> 

Я уже могу получить элемент «foo» (но только его содержимое) с помощью этой функции:

 private function get_html_from_node($node){ $html = ''; $children = $node->childNodes; foreach ($children as $child) { $tmp_doc = new DOMDocument(); $tmp_doc->appendChild($tmp_doc->importNode($child,true)); $html .= $tmp_doc->saveHTML(); } return $html; } 

Но я хотел бы вернуть все теги html (включая его атрибуты) DOMElement. Как я могу это сделать?

Используйте необязательный аргумент для DOMDocument::saveHTML : это говорит: «Вывести только этот элемент».

 return $node->ownerDocument->saveHTML($node); 

Обратите внимание, что аргумент доступен только из PHP 5.3.6. До этого вам нужно вместо этого использовать DOMDocument::saveXML . Результаты могут несколько отличаться. Кроме того, если у вас уже есть ссылка на документ, вы можете просто сделать это:

 $doc->saveHTML($node); 

PHP Простой HTML DOM Parser должен выполнять эту работу!