PHP DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseEntityRef: 实体中没有名称

标签 php html-parsing domdocument

我试图从某些网页中获取“链接”元素。我无法弄清楚我做错了什么。我收到以下错误:

Severity: Warning

Message: DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseEntityRef: no name in Entity, line: 536

Filename: controllers/test.php

Line Number: 34



代码中的第 34 行如下:

      $dom->loadHTML($html);


我的代码:
            $url = "http://www.amazon.com/";

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    if($html = curl_exec($ch)){

        // parse the html into a DOMDocument
        $dom = new DOMDocument();

        $dom->recover = true;
        $dom->strictErrorChecking = false;

        $dom->loadHTML($html);

        $hrefs = $dom->getElementsByTagName('a');

        echo "<pre>";
        print_r($hrefs);
        echo "</pre>";

        curl_close($ch);


    }else{
        echo "The website could not be reached.";
    }

最佳答案

这意味着某些 HTML 代码无效。
这只是一个警告,而不是一个错误。您的脚本仍将处理它。抑制警告集

 libxml_use_internal_errors(true);

或者您可以通过执行以下操作来完全抑制警告
@$dom->loadHTML($html);

关于PHP DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseEntityRef: 实体中没有名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12328322/

相关文章:

python - BS4 如何在不使用 .text 的情况下获取文本?

php - 将 DOMDocument 中的特定元素导出到字符串

PHP DOMDocument 用 div id 替换内容

php - 如何配置 Laravel mail.php 使用内置邮件功能?

php - 在 Laravel 中通过确认页面和提交页面保留输入的正确方法是什么?

php - Laravel 5 中的自定义验证器

php - 强制当前目录中的错误日志文件

html - 库问题 : How do I set up QtWebKit to parse HTML?

php - 使用 file_get_contents 获取类标签

php - 导入 XML 节点并删除命名空间