转换和阿波斯;在 PHP 中改为撇号

2022-08-30 15:36:07

我的数据中有许多HTML实体( ...等),包括 .我只想将其转换为其字符等效项。•'

我以为htmlspecialchars_decode()会起作用,但是 - 没有运气。思潮?

我试过这个:

echo htmlspecialchars_decode('They're here.');

但它返回:They're here.

编辑:

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

echo html_entity_decode('They're here.')

还返回:They're here.


答案 1

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

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

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

echo html_entity_decode('They're here.', ENT_QUOTES | ENT_HTML5);

您将需要两者(转换单引号和双引号)和(或除 以外的任何语言标志,因此请选择最适合您的情况)。ENT_QUOTESENT_HTML5ENT_HTML401

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

echo str_replace(''', "'", 'They're here.');

答案 2

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

像这样使用它:

html_entity_decode($str,ENT_QUOTES | ENT_HTML5)

推荐