我的数据中有许多HTML实体(•
... etc),包括'
。我只想将其转换为等效字符。
我以为htmlspecialchars_decode()可以工作,但是-不走运。有什么想法吗?
我尝试了这个:
echo htmlspecialchars_decode('They're here.');
但它返回:
They're here.
编辑:
我也尝试了html_entity_decode(),但它似乎不起作用:
echo html_entity_decode('They're here.')
还返回:
They're here.
最佳答案
由于'
不属于HTML 4.01的一部分,因此默认情况下不会将其转换为'
。
在PHP 5.4.0中,extra flags were introduced处理不同的语言,每种语言都包括'
作为实体。
这意味着您可以执行以下操作:
echo html_entity_decode('They're here.', ENT_QUOTES | ENT_HTML5);
您将同时需要
ENT_QUOTES
(转换单引号和双引号)和ENT_HTML5
(或ENT_HTML401
以外的任何语言标记,因此请选择最适合您的情况)。在PHP 5.4.0之前,您需要使用str_replace:
echo str_replace(''', "'", 'They're here.');