2013-04-15 41 views
0

我需要使用PHP DomDocument检索div和他的内容。PHP DomDocument检索div的html内容

我:

$dom = new DOMDocument; 
$dom->loadHTML($HTML); 
exit($dom->getElementById('inter')->nodeValue); 

在这里,我有我的内容,但没有所有的HTML标签......

我需要让我的内容,如他是,与所有的html标签(H,P中,等...)

+0

可能重复([在PHP的的DomDocument innerHTML的?] http://stackoverflow.com/questions/2087103/innerhtml-in-phps-domdocument) –

回答

4

更改最后一行:

exit($dom->saveHTML($dom->getElementById('inter'))); 

DOMDocument::saveHTML()

+0

警告:DOMDocument :: saveHTML()期望完全为0参数,1给出 –

+3

@ClémentAndraud您需要将您的PHP版本更新为> = 5.3.6。如果你不能这样做,你可以尝试['DOMNode :: C41N()'](http://php.net/domnode.c14n) - 但是请注意,这很可能会给HTML带来不希望的结果。 – DaveRandom

+0

感谢C41N;)现在没事! –

1

这个给你内部HTML

function DOMinnerHTML($element) 
{ 
    $innerHTML = ""; 
    $children = $element->childNodes; 
    foreach ($children as $child) 
    { 
     $tmp_dom = new DOMDocument(); 
     $tmp_dom->appendChild($tmp_dom->importNode($child, true)); 
     $innerHTML.=trim($tmp_dom->saveHTML()); 
    } 
    $innerHTML=html_entity_decode(html_entity_decode($innerHTML)); 
    return $innerHTML; 
} 
echo DOMinnerHTML($dom->getElementById('inter')->item(0)); 

编辑:

我忘了地址链接:感谢斑宇智波

innerHTML in PHP's DomDocument

+6

至少要提到你从哪里拿过它。 [PHP的DomDocument中的innerHTML?](http://stackoverflow.com/a/2087136) –