2012-07-30 59 views
0

我有以下代码各个环节的innerHTML的工作不

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()); 
    } 
    return $innerHTML; 
} 

$doc=new DOMDocument(); 
$doc->loadHtmlFile('http://www.google.com/'); 
$links=$doc->getElementsByTagName('a'); 
foreach($links as $m) 
{ 
    echo DOMinnerHTML($links[$m]).'<br />'; 
} 

并将其输出什么。

我该怎么做才能输出所有http://google.com中每个链接的内容?

+0

这需要基本调试。你得到什么页面内容?它是否包含任何'a'元素? – 2012-07-30 07:47:47

+0

@Pekka呈现的页面完全是空的。 – Mageek 2012-07-30 07:48:27

+2

不,您从Google *获得哪些网页内容? '$ links'是否包含任何内容?你知道,调试。匆匆一瞥,'$ links [$ m]'看起来不对。它不应该只是'$ m'? – 2012-07-30 07:48:57

回答

1

看来这个:

echo DOMinnerHTML($links[$m]).'<br />'; 

应该只是这样的:

echo DOMinnerHTML($m).'<br />'; 
+0

谢谢bingjie2680和佩卡!那是错误。 (我认为'foreach($ links为$ m)'与JS中的'for(var m in links)'相同)。 – Mageek 2012-07-30 07:57:11

+0

不客气。很高兴,这hleps。 – bingjie2680 2012-07-30 08:00:03