2

我正在尝试使用以下代码从另一个网站提取 div:

<?php

    $doc = new DomDocument;

     //We need to validate our document before refering to the id
    $doc->validateOnParse = true;
    $doc->loadHtml(file_get_contents('http://myaddresshere'));

    var_dump($doc->getElementById('the div'));



?>

我可以得到结果,但在此之前我也得到了一个很长的 php 代码字符串:

object(DOMElement)#2 (18) { ["tagName"]=> string(2) "h3" ["schemaTypeInfo"]=> NULL ["nodeName"]=> string(2) "h3" ["nodeValue"]=> string(35) "Telephone Technical Support: Active" ["nodeType"]=> int(1) ["parentNode"]=> string(22) "(object value omitted)" ["childNodes"]=> string(22) "(object value omitted)" ["firstChild"]=> string(22) "(object value omitted)" ["lastChild"]=> string(22) "(object value omitted)" ["previousSibling"]=> string(22) "(object value omitted)" ["nextSibling"]=> string(22) "(object value omitted)" ["attributes"]=> string(22) "(object value omitted)" ["ownerDocument"]=> string(22) "(object value omitted)" ["namespaceURI"]=> NULL ["prefix"]=> string(0) "" ["localName"]=> string(2) "h3" ["baseURI"]=> NULL ["textContent"]=> string(35) ***"Telephone Technical Support: Active"*** }

我怎样才能删除所有的字符串,只得到 div 的内容。

  • 有问题的 div 显示的是布尔结果(活动/过期)
4

1 回答 1

0

您可以通过两种方式获取节点的值:

DomElement->nodeValue; // inherited from DomNode

或通过

<?php 
function get_inner_html( $node ) { 
    $innerHTML= ''; 
    $children = $node->childNodes; 
    foreach ($children as $child) { 
        $innerHTML .= $child->ownerDocument->saveXML( $child ); 
    } 

    return $innerHTML; 
} 
?>

有关详细信息,请参阅http://php.net/manual/en/class.domelement.phphttp://www.php.net/manual/en/class.domnode.php

于 2013-11-06T13:55:24.407 回答