数字HTML实体60和62的PHP html_entity_decode()异常

时间:2015-09-07 00:51:39

标签: php

如何使用PHP的html_entity_decode()作为数字HTML实体60和62的例外?

目前我的代码如下所示:

$t = mysqli_real_escape_string($db,html_entity_decode($_POST['title'],ENT_COMPAT,'UTF-8'));

但是,如果我将其编码为在内容中显示为插入符号(就像您直接向客户端显示&符号一样),它们也会被编码,这导致HTML格式错误。所以我需要做出某种例外,虽然我不知道如何做到这一点;用临时占位符替换字符串?我确信有更好的方法。

1 个答案:

答案 0 :(得分:1)

暂定答案,因为这可能是XY-problem
解析html实体后,您可以通过htmlspecialchars“重新编码”那些可能损害您的html结构的字符。

$t = mysqli_real_escape_string(
    $db,
    htmlspecialchars(
        html_entity_decode($_POST['title'],ENT_COMPAT,'UTF-8'),
        'UTF-8'
    )
);