DOMDocument :: loadHTML()期望参数2为long,在尝试使用LIBXML_HTML_NOIMPLIED参数

时间:2016-12-01 13:18:46

标签: php domdocument

目前,当我使用DOMDocument对象并调用saveHTML()时,它会自动添加一些我不想要的html标签。我尝试了这里建议的解决方案(https://stackoverflow.com/a/31426408/3659230),当我这样做时,我得到了这个错误:

DOMDocument :: loadHTML()期望参数2为long,给定字符串

$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'), LIBXML_HTML_NOIMPLIED|LIBXML_HTML_NODEFDTD);

看起来很简单,但我似乎无法让它发挥作用。我使用的是PHP 5.5.3版本

1 个答案:

答案 0 :(得分:3)

holder.diffNowsdtelTV.getText().toString()LIBXML_HTML_NOIMPLIED仅从PHP 5.4开始定义。

如果未定义常量,PHP(白痴地)将其视为字符串。所以在PHP 5.3及更低版本中,您的代码实际上是

LIBXML_HTML_NODEFDTD

或者,一旦执行了按位运算符:

$doc->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'), 'LIBXML_HTML_NOIMPLIED'|'LIBXML_HTML_NODEFDTD');

这显然不是你想要的!如果可能,您最好的选择是升级到更新版本的PHP。