无法使用php5 domdocument加载网页内容

时间:2012-04-23 07:19:57

标签: php parsing dom html-parsing domdocument

<?php
    class parsedictionary {
        public function _process() {
            $webpage="http://www.oppapers.com/essays/Computerized-World/160871?read_essay";
            $doc=new DOMDocument();
            $doc->loadHTML($webpage);
            echo $doc;
        }
    }
    $obj=new parsedictionary();
    $obj->_process();
?>

我无法获取该页面的内容。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
    <body>
        <p>http://www.oppapers.com/essays/Computerized-World/160871?read_essay</p>
    </body>
</html>

但我需要获取该页面的内容。

3 个答案:

答案 0 :(得分:2)

DOMDocument类显然不是字符串;你可以迭代它,对它进行操作,但它不能只是被回应。查看文档以了解您可以使用它执行的操作:http://www.php.net/domdocument

要获取网页内容,您可以使用file_get_contentsecho $doc->saveHTML()

编辑:没有意识到您的代码中存在其他问题;你可以改用它:

public function _process() {
    return file_get_contents('http://www.oppapers.com/essays/Computerized-World/160871?read_essay');
}

答案 1 :(得分:1)

<?php
    $doc->saveHTML();
?>

像魅力一样。

答案 2 :(得分:0)

在这种情况下,错误很明显。 _process()方法无法从一种数据类型转换为另一种数据类型,它期待String并将其提供给DomDocument。也许您应该首先尝试从DomDocument中提取所有文本作为字符串,然后将其发送到_process()方法。