在PHP中使用dom-> saveHTML时缺少html内容

时间:2013-11-06 08:45:48

标签: php html

我使用DOM从网站获取数据。我已经在我的本地服务器上测试了我的代码并且它工作正常,但是当我将它上传到服务器并运行代码时,我创建的脚本返回了没有任何内容的html标签。我的代码看起来像这样:

$divs = $dom->getElementsByTagName('div');
foreach($divs as $div){
    if($div->getAttribute('class') == "content1"){
        $dom = new DOMDocument();
        $dom->appendChild($dom->importNode($div, true));
        $content1 = $dom->saveHTML();
        echo "content:".$content1;
    }
}

在我的localhost中,它会返回如下内容:

<div class="content1">This is my content</div>

然而,在服务器中,我奇怪地得到空的html标签,如下所示:

<div class="content1"></div>

这个问题的可能原因是什么?有什么办法可以解决吗?请指教。

1 个答案:

答案 0 :(得分:0)

5.3.6下的PHP版本:

创建一个变量,该变量将包含当前节点与所有子节点的克隆, 将它作为一个孩子追加 回显返回的值。

foreach($divs as $div) {
   if($div->getAttribute('class') == "content1"){
      $dom = new DOMDocument();
      $cloned = $div->cloneNode(TRUE);
      $dom->appendChild($dom->importNode($cloned,TRUE));
      $content1 = $dom->saveHTML();
      echo "content:".$content1;
  }
}

编辑:我犯了一个错误,不是

$cloned = $element->cloneNode(TRUE);

$cloned = $div->cloneNode(TRUE);
抱歉^^(希望它会起作用)