DOMDocument loadHTML在服务器上无法正常工作 [英] DOMDocument loadHTML doesn't work properly on a server

查看:91
本文介绍了DOMDocument loadHTML在服务器上无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我首先在MAMP上运行代码,并且效果很好.但是,当我尝试在另一台服务器上运行代码时,我收到了很多警告,例如:

I run the code first on MAMP and it worked very well. But when I tried to run the code on another server, I got a lot of warnings like:

警告:DOMDocument :: loadHTML():意外的结束标记:实体中的标头,第17行的/cgihome/zhang1/html/cgi-bin/getPrice.php中的3349行警告:DOMDocument :: loadHTML():htmlParseStartTag:放错位置的标记实体行:/cgihome/zhang1/html/cgi-bin/getPrice.php中的3350行第17行警告:DOMDocument :: loadHTML():标记标头在中无效实体行:/cgihome/zhang1/html/cgi-bin/getPrice.php中的3517行第17行

Warning: DOMDocument::loadHTML(): Unexpected end tag : head in Entity, line: 3349 in /cgihome/zhang1/html/cgi-bin/getPrice.php on line 17 Warning: DOMDocument::loadHTML(): htmlParseStartTag: misplaced tag in Entity, line: 3350 in /cgihome/zhang1/html/cgi-bin/getPrice.php on line 17 Warning: DOMDocument::loadHTML(): Tag header invalid in Entity, line: 3517 in /cgihome/zhang1/html/cgi-bin/getPrice.php on line 17

代码如下:

<?php
 $amazon = file_get_contents('http://www.amazon.com/blablabla');
 $doc = new DOMdocument();
 $doc->loadHTML($amazon);
 $doc->saveHTML();
 $price = $doc -> getElementById('actualPriceValue')->textContent;
 $ASIN = $doc -> getElementById('ASIN')->getAttribute('value');
?>

任何人都知道发生了什么事吗?谢谢!

Anyone knows what's going on? Thanks!

推荐答案

要禁用警告,可以使用

libxml_use_internal_errors(true);

这对我有用.手册

背景:您正在加载无效的HTML.无效的HTML很常见, DOMDocument :: loadHTML 可以纠正大多数问题,但默认情况下会发出警告.

Background: You are loading invalid HTML. Invalid HTML is quite common, DOMDocument::loadHTML corrects most of the problems, but gives warnings by default.

使用 libxml_use_internal_errors 您可以控制该行为.在加载文档之前进行设置:

With libxml_use_internal_errors you can control that behavior. Set it before loading the document:

libxml_use_internal_errors(true);
$doc->loadHTML($amazon);

这篇关于DOMDocument loadHTML在服务器上无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆