PHP DOM loadHTML()方法异常警告

时间:2015-06-18 20:47:41

标签: php dom webserver

我有以下代码在我的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的内容在外部服务器和本地主机上完全相同。

但为什么会出现这种警告,为什么它不起作用?

loadHTML()是不是期望参数1首先成为字符串?

为什么说这个方法expects parameter 1 to be a valid path

为了说清楚我没有打电话给loadHTMLFile(),我正在打电话给loadHTML()

感谢。

1 个答案:

答案 0 :(得分:1)

您受one of PHP bugs影响。该问题仅出现在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);