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()
。
谢谢。
您受到 one of PHP bugs 的影响。该问题仅出现在 PHP 5.6.8 和 5.6.9 中。很可能您已经影响了服务器上的 PHP 版本,以及您本地主机上的无错误版本。
该错误本身会禁止您正在加载的 HTML 文档中的所有空字符,因此作为解决方法,您可以尝试在进一步解析之前删除那些(实际上不需要的)字符。
$document = new DOMDocument();
$p_result_without_null_chars = str_replace("[=10=]", '', $p_result)
$document->loadHTML($p_result_without_null_chars);
我有以下代码在我的本地主机上运行良好:
$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()
。
谢谢。
您受到 one of PHP bugs 的影响。该问题仅出现在 PHP 5.6.8 和 5.6.9 中。很可能您已经影响了服务器上的 PHP 版本,以及您本地主机上的无错误版本。
该错误本身会禁止您正在加载的 HTML 文档中的所有空字符,因此作为解决方法,您可以尝试在进一步解析之前删除那些(实际上不需要的)字符。
$document = new DOMDocument();
$p_result_without_null_chars = str_replace("[=10=]", '', $p_result)
$document->loadHTML($p_result_without_null_chars);