html — получает содержимое элемента с внешней страницы. Переполнение стека

Мне бы хотелось, чтобы содержимое (CSS, дочерние элементы и т. Д.) Отображалось на HTML-странице, но этот элемент находится на внешней странице. Когда я использую:

$page = new DOMDocument();
$page->loadHTMLFile('about.php');
$text = $page->getElementById('text');
echo $text->nodeValue;

Я только получаю текст, но #text также есть изображение как ребенок и немного CSS. Могу ли я получить (и повторить) те, вроде как с помощью iframe, но затем с элементом. Если так, то как?

Большое спасибо.

1

Решение

Может быть, то, что вы ищете DOMDocument::saveHTML().

Если вы установите необязательные аргументы, он выводит только этот конкретный узел.

$elm = $page->getElementById('text');
echo $elm->ownerDocument->saveHTML($elm);
1

Другие решения

Я нашел решение, хотя оно не извлекает CSS, но если вам нужен только элемент и его дочерние элементы, это мой лучший выбор.

использование simple_html_dom.php делать все тяжелые вещи.

Моя внешняя страница:

<div id='text'>
<img src='img/dummy.png' align='left' alt='Image not available. Our apologies.'/>
<span>text</span><br/>
<p>
text
</p>
<p>
text
</p>
<p>
text
</p>
<div>

Теперь моя страница, на которой я хотел бы показать содержимое моей внешней страницы:

<?php include('../includes/simple_html_dom.php'); ?>
....
<?php
$html = file_get_html('about.php');
$ret = $html->find('div#text', 0);
echo $ret;
?>

что это делает, это увязывает элемент с его потомками, к сожалению, без CSS.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector