我们正在处理大量需要转换为纯文本的HTML数据。在此过程中,我们发现不是html_entity_decode()
也不是htmlspecialchars_decode()
转换了多个实体,例如<
,>
,"
,$amp;
就是这样。
然而,在现代HTML页面中,有一些共同的实体:
→
»
°
®
©
'
£
¥
€
∑
™
这些功能都忽略了这些功能。
我有什么选择将它们转换为相应的角色?我想我最好的选择是手动编写一个字符串替换函数来执行此操作吗?
答案 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是什么,但我没有读过评论