如何使用PHP的html_entity_decode()
作为数字HTML实体60和62的例外?
目前我的代码如下所示:
$t = mysqli_real_escape_string($db,html_entity_decode($_POST['title'],ENT_COMPAT,'UTF-8'));
但是,如果我将其编码为在内容中显示为插入符号(就像您直接向客户端显示&符号一样),它们也会被编码,这导致HTML格式错误。所以我需要做出某种例外,虽然我不知道如何做到这一点;用临时占位符替换字符串?我确信有更好的方法。
答案 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'
)
);