从外部页面PHP获取元素的内容

时间:2016-02-21 16:59:52

标签: php html css external

我想要在HTML页面上显示内容(CSS,孩子等),但此元素位于外部页面上。当我使用时:

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

我只收到文字,但#text也有一个图片作为孩子和一些CSS。我可以得到(和回声)那些,有点像iframe,但后来有一个元素。如果是这样,怎么样?

非常感谢。

2 个答案:

答案 0 :(得分:1)

也许您正在寻找的是DOMDocument::saveHTML()

如果设置可选参数,则仅输出此特定节点。

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

答案 1 :(得分:0)

我找到了一个解决方案,虽然它没有检索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。