php – DOMDocument :: loadHTML():由于输入错误,输入转换失败
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – DOMDocument :: loadHTML():由于输入错误,输入转换失败,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1843字,纯文字阅读大概需要3分钟。
内容图文
![php – DOMDocument :: loadHTML():由于输入错误,输入转换失败](/upload/InfoBanner/zyjiaocheng/804/9630f20582d7461bab467f36aa58f3b2.jpg)
我想用PHP和CURL废弃一个中文网站.早些时候我遇到了压缩结果的问题,SO帮助我解决了问题.
现在我在通过PHP-DOMDocument解析内容时遇到了麻烦.
错误如下,
Warning: DOMDocument::loadHTML(): input conversion failed due to input error, bytes 0xE3 0x80 0x90 0xE8 in /var/www/html/ ..
即使警告这是阻止进一步的结果.
我的代码如下:
$agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,$url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('text/html; charset=gb2312'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_ENCODING, ""); // handling all compressions
curl_setopt($curl, CURLOPT_USERAGENT, $agent);
curl_setopt($curl, CURLOPT_TIMEOUT, 1000);
$html = curl_exec($curl) or die("error: ".curl_error($curl));
curl_close($curl);
$htmlParsed = mb_convert_encoding($result,'utf-8','gb2312');
$doc = new DOMDocument();
$doc->loadHTML($htmlParsed);
$xpath = new DOMXpath($doc);
$elements = $xpath->query('//div[@class="test"]//a/@href');
if (!is_null($elements)) {
foreach ($elements as $element) {
echo "<br/>[". $element->nodeName. "]";
$nodes = $element->childNodes;
foreach ($nodes as $node) {
echo $node->nodeValue. "\n";
}
}
}
我在目标网站上找到了内容类型,
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
所以我尝试将结果转换为utf-8.
由于输入转换在代码的’DOMDocument :: loadHTML()’行失败,我无法解析网页以获得结果.
我目前陷入困境,任何帮助或建议都将受到高度赞赏. Thanx提前.
(之前我曾经使用简单的HTML DOM解析器,这非常简单.但是后来在阅读SO中关于其用法的缺点.我计划切换到PHP的原生DOM解析器)
解决方法:
我今天看到了解决方案.
$html=new DOMDocument();
$html_source = get_html();
$html_source =mb_convert_encoding( $html_source, "HTML-ENTITIES", "UTF-8");
$html->loadHTML( $html_source );
内容总结
以上是互联网集市为您收集整理的php – DOMDocument :: loadHTML():由于输入错误,输入转换失败全部内容,希望文章能够帮你解决php – DOMDocument :: loadHTML():由于输入错误,输入转换失败所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。