LuZ LuZ - 1 year ago 140
PHP Question

Dom loadHTML doesn't work properly on a server

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:

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

The codes are following:

$amazon = file_get_contents('');
$doc = new DOMdocument();
$price = $doc -> getElementById('actualPriceValue')->textContent;
$ASIN = $doc -> getElementById('ASIN')->getAttribute('value');

Anyone knows what's going on? Thanks!

Answer Source

To disable the warning, you can use


This works for me. Manual

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

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