获取远程页面的源代码然后根据其id显示一个div

时间:2013-07-14 13:15:13

标签: php file-get-contents

正如我在目前的代码中所描述的那样:

<?php
    $url = "remotesite.com/page1.html";
    $html = file_get_contents($url);
    $doc = new DOMDocument(); // create DOMDocument
    libxml_use_internal_errors(true);
    $doc->loadHTML($html); // load HTML you can add $html

    $elements = $doc->getElementsByTagName('div');

?>

我的编码技巧非常基础,所以此时我迷路了,不知道如何只显示标识为id=mydiv的div

1 个答案:

答案 0 :(得分:1)

如果你有PHP 5.3.6或更高版本,你可以执行以下操作:

$url = "remotesite.com/page1.html";
$html = file_get_contents($url);
$doc = new DOMDocument(); // create DOMDocument
libxml_use_internal_errors(true);
$doc->loadHTML($html); // load HTML you can add $html
$testElement = $doc->getElementById('divIDName');
echo $doc->saveHTML($testElement);

http://php.net/manual/en/domdocument.getelementbyid.php

如果您的版本较低,我相信一旦您将getElementById发现到新的DomDocument对象中,您将需要复制Dom节点。

$elementDoc = new DOMDocument();
$cloned = $testElement->cloneNode(TRUE);
$elementDoc->appendChild($elementDoc->importNode($cloned,TRUE));
echo $elementDoc->saveHTML();