0

我正在使用 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;
    }
}

在我的本地主机中,它返回如下内容:

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

但是,在服务器中,我奇怪地得到了这样的空 html 标签:

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

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

4

1 回答 1

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);

对不起^^(希望它会工作)

于 2013-11-06T09:26:41.700 回答