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



我怎样才能解决advanced_html_dom.php str_get_html对HTML实体的转换,而不是在每个元素内容上应用htmlentities()?

尽管

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

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

。如果您使用文件/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 ÔÇó

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

该软件包也适用于外部链接和内部HTML文件。

安装

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

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

文档

欲了解更多信息,请访问软件包链接:PHPHTMLQuery

最新更新