我试图从某些网页中获取“链接”元素。我无法弄清楚我做错了什么。我收到以下错误:
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/