PHP DOMDocument как получить элемент?

Я пытаюсь прочитать содержимое веб-сайта, но у меня есть проблема, я хочу получить изображения, ссылки на эти элементы, но я хочу, чтобы элементы были самими собой, а не содержимое элемента, например, я хочу получить это: я хочу получить весь этот элемент.

Как я могу это сделать..

<?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.link.com"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); $dom = new DOMDocument; @$dom->loadHTML($output); $items = $dom->getElementsByTagName('a'); for($i = 0; $i < $items->length; $i++) { echo $items->item($i)->nodeValue . "<br />"; } curl_close($ch);; ?> 

Related of "PHP DOMDocument как получить элемент?"

Кажется, вы запрашиваете сериализованный html DOMElement? Например, вам нужна строка, содержащая <a href="http://example.org">link text</a> ? (Пожалуйста, уточните свой вопрос.)

 $url = 'http://example.com'; $dom = new DOMDocument(); $dom->loadHTMLFile($url); $anchors = $dom->getElementsByTagName('a'); foreach ($anchors as $a) { // Best solution, but only works with PHP >= 5.3.6 $htmlstring = $dom->saveHTML($a); // Otherwise you need to serialize to XML and then fix the self-closing elements $htmlstring = saveHTMLFragment($a); echo $htmlstring, "\n"; } function saveHTMLFragment(DOMElement $e) { $selfclosingelements = array('></area>', '></base>', '></basefont>', '></br>', '></col>', '></frame>', '></hr>', '></img>', '></input>', '></isindex>', '></link>', '></meta>', '></param>', '></source>', ); // This is not 100% reliable because it may output namespace declarations. // But otherwise it is extra-paranoid to work down to at least PHP 5.1 $html = $e->ownerDocument->saveXML($e, LIBXML_NOEMPTYTAG); // in case any empty elements are expanded, collapse them again: $html = str_ireplace($selfclosingelements, '>', $html); return $html; } 

Однако обратите внимание, что то, что вы делаете, опасно, потому что это может потенциально смешивать кодировки. Лучше иметь ваш вывод в качестве другого DOMDocument и использовать importNode() для копирования importNode() вам узлов. Кроме того, используйте таблицу стилей XSL.

Я предполагаю, что вы просто скопировали некоторый пример кода и не потрудились узнать, как это работает на самом деле …

В любом случае, часть ->nodeValue принимает элемент и возвращает текстовое содержимое (потому что у элемента есть один дочерний элемент текстового узла – если у него было что-то еще, я не знаю, что nodeValue ).

Итак, просто удалите ->nodeValue и у вас есть свой элемент.