解码所有可能的HTML实体?

时间:2017-12-05 08:10:40

标签: php html

我们正在处理大量需要转换为纯文本的HTML数据。在此过程中,我们发现不是html_entity_decode()也不是htmlspecialchars_decode()转换了多个实体,例如&lt&gt"$amp;就是这样。

然而,在现代HTML页面中,有一些共同的实体:

→
»
°
®
©
'
£
¥
€
∑
™

这些功能都忽略了这些功能。

我有什么选择将它们转换为相应的角色?我想我最好的选择是手动编写一个字符串替换函数来执行此操作吗?

1 个答案:

答案 0 :(得分:2)

html_entity_decode应该是答案,它只是有愚蠢的默认值,因此你可能错了。尝试

$text=html_entity_decode($html,ENT_QUOTES|ENT_HTML5,'UTF-8')

或者,

$text=(@DOMDocument::loadHTML('<root>'.$html.'</root>'))->getElementsByTagName("root")->item(0)->textContent;

也可以运作

ps,我不知道所有的downvotes是什么,但我没有读过评论