Php html实体/特殊字符解码

Php html实体/特殊字符解码,php,html-entities,html-encode,Php,Html Entities,Html Encode,我有一个关于html解码的问题 我正在使用WordPress的gravityforms插件来管理表单。formtitle包括网站的名称。 本周,特殊字符中出现错误,&符号在邮箱中显示为&。我用html特殊字符解码修复了这个问题,效果非常好。 后来,似乎有一个类似的错误与'标志。显然,html_SpecialCharactersCode与该代码不兼容,因此我也尝试了html_entities_解码,这对“符号”也不起作用 其他符号被完美解码,比如:-=+所以我真的不知道问题出在哪里。我只希望

我有一个关于html解码的问题

我正在使用WordPress的gravityforms插件来管理表单。formtitle包括网站的名称。 本周,特殊字符中出现错误,&符号在邮箱中显示为&。我用html特殊字符解码修复了这个问题,效果非常好。 后来,似乎有一个类似的错误与'标志。显然,html_SpecialCharactersCode与该代码不兼容,因此我也尝试了html_entities_解码,这对“符号”也不起作用

其他符号被完美解码,比如<>:-=+所以我真的不知道问题出在哪里。我只希望“显示为”,而不是&039

我的代码:

    function before_email( $email ) {
        $subject = htmlspecialchars_decode($email['subject']);
        $subject = html_entity_decode($subject);
        $email['subject'] = '$subject';
        return $email;  
    }
我的具体问题是:这里有我遗漏的东西吗?比如,可能是一些类似于我尝试过的功能,或者是有其他什么地方出了问题

谢谢

您可以使用

$subject = html_entity_decode($subject, ENT_QUOTES);

但是,在将HTML编码插入数据库之前,我建议不要使用HTML编码。只需在输出时对其进行编码。最好将原始数据存储在数据库中。

谢谢!!!!这就成功了。谢谢你的建议。我真的不知道在这种情况下怎么做。老实说,我不认为它存储在数据库中,只是存储在邮件服务器上。非常感谢是的,我会的,当你刚刚回答的时候我没能做到,因为根据stackoverflow的说法,时间太早了;是的,您可以使用html_实体_解码$subject;