html entity/specialcharacters解码

html entity/specialcharacters decode

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

我正在使用 WordPress 的 gravityforms 插件来管理表单。 formtitle 包括网站的名称。 这周有一个特殊字符的错误,& 符号在邮箱中显示为 & 。我使用 html 特殊字符解码修复了这个问题,效果很好。 后来发现 ' 符号也有类似的错误。显然 html_specialcharacersdecode 不适用于那个,所以我也尝试了 html_entities_decode,这也不适用于 ' 符号。

其他符号完美解码,例如< > () : -=+,所以我真的不知道问题出在哪里。我只想 ' 显示为 ' 而不是 &#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 编码。输出的时候就编码一下。最好只将原始数据存储在数据库中。