转换' 在PHP中使用撇号

Dav*_*ave 17 html php decode special-characters

我的数据中有许多HTML实体(•...等),包括'.我只是想把它转换为它的等价字符.

我假设htmlspecialchars_decode()会起作用,但是 - 没有运气.思考?

我试过这个:

echo htmlspecialchars_decode('They're here.');
Run Code Online (Sandbox Code Playgroud)

但它返回: They're here.

编辑:

我也尝试过html_entity_decode(),但它似乎不起作用:

echo html_entity_decode('They're here.')
Run Code Online (Sandbox Code Playgroud)

还返回: They're here.

cmb*_*ley 32

由于'不是HTML 4.01的一部分,因此'默认情况下不会转换为HTML 4.01 .

在PHP 5.4.0中,引入额外的标志来处理不同的语言,每个语言都包含'在一个实体中.

这意味着您可以执行以下操作:

echo html_entity_decode('They're here.', ENT_QUOTES | ENT_HTML5);
Run Code Online (Sandbox Code Playgroud)

您将需要ENT_QUOTES(转换单引号和双引号)和ENT_HTML5(或除了以外的任何语言标志ENT_HTML401,因此请选择最适合您的情况).

在PHP 5.4.0之前,您需要使用str_replace:

echo str_replace(''', "'", 'They're here.');
Run Code Online (Sandbox Code Playgroud)


eri*_*hak 6

有一种“正确”的方式,不使用str_replace, @cbuckley 是正确的,因为默认为html_entity_decodeHTML 4.01,但您可以设置一个 HTML 5 参数来对其进行解码。

像这样使用它:

html_entity_decode($str,ENT_QUOTES | ENT_HTML5)
Run Code Online (Sandbox Code Playgroud)