我使用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>
这个问题的可能原因是什么?有什么办法可以解决吗?请指教。
答案 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);
抱歉^^(希望它会起作用)