PHP DOM loadHTML () метод необычное предупреждение

У меня был следующий код, который отлично работает на моем localhost:

$document = new DOMDocument(); $document->loadHTML($p_result); $form = $document->getElementsByTagName('form')->item(0); // Code continues using the $form variable 

После того, как тот же код обновится на внешнем сервере, loadHTML() и выдает это предупреждение.

 Warning: DOMDocument::loadHTML() expects parameter 1 to be a valid path, string given in path/name/to/script.php 

Возвращаемый NULL, а не объект, поэтому код довольно скоро попадает в фатальную ошибку.

Обратите внимание, что содержимое $p_result абсолютно одинаково на внешнем сервере и на моем localhost.

Но почему это отображает такое предупреждение и почему оно не работает?

Разве это не loadHTML() ожидает, что аргумент 1 будет в первую очередь строкой?

Почему он говорит, что этот метод expects parameter 1 to be a valid path ?

Просто для того, чтобы было ясно, что я не loadHTMLFile() , я loadHTML() .

Благодарю.

На вас влияет одна из ошибок PHP . Проблема присутствовала только в PHP 5.6.8 и 5.6.9. Скорее всего, вы затронули версию PHP на сервере и версию без ошибок на вашем локальном хосте.

Сама ошибка запрещает все нулевые символы в документе HTML, который вы загружаете, поэтому в качестве обходного пути вы можете попытаться удалить эти (фактически не нужные) символы перед дальнейшим анализом.

 $document = new DOMDocument(); $p_result_without_null_chars = str_replace("\0", '', $p_result) $document->loadHTML($p_result_without_null_chars);