PHP DOM loadHTML() 方法异常警告


PHP DOM loadHTML() method unusual warning

>我有以下代码,在我的本地主机上工作正常:

$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()

谢谢。

您受到 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);