我的数据中有许多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.');

09-11 20:06