如何解决PHP高级html dom的实体转换?

时间:2016-02-08 18:54:09

标签: php simple-html-dom

我如何解决advanced_html_dom.php str_get_html对HTML实体的转换,而不是对每个元素内容应用htmlentities()?

尽管

http://archive.is/YWKYp#selection-971.0-979.95

  

这个项目的目标是成为基于DOM的直接替代品   PHP的简单html dom库。

     

...如果您使用file / str_get_html,则无需更改   任何东西。

我找到了

include 'simple_html_dom.php';
$set = str_get_html('<html><title>&nbsp;</title></html>');
echo ($set->find('title',0)->innertext)."\n";  // Expected: &nbsp;  Observed: &nbsp;

更改为高级HTML DOM会产生不兼容的结果:

include 'advanced_html_dom.php';
$set = str_get_html('<html><title>&nbsp;</title></html>');
echo ($set->find('title',0)->innertext)."\n";    // Expected: &nbsp;  Observed: -á

此问题不仅限于空格。

$set = str_get_html('<html><body>&bull;</body></html>'); 
echo $set->find('body',0)->innertext; // Expected $bull; Observed ÔÇó

1 个答案:

答案 0 :(得分:0)

您可以查看我自己的包PHPHTMLQuery,它可以帮助您使用PHP选择使用大多数CSS3选择器的HTML元素。

  

该软件包也可以使用外部链接和内部html文件。

<强>安装

打开终端并浏览到项目根文件夹并运行

composer require "abdelilahlbardi/phphtmlquery":"@dev"

<强>文档

有关更多信息,请访问包裹链接:PHPHTMLQuery