我有一张表格。当用户提交数据时,我的脚本会使用
检查php / html的文本$text1 = strip_tags($text);
然后将数据插入数据库。 但是当用户提交类似这样的内容时:“我完全< 3这个网站”,它只插入:“我完全”。我该如何解决这个问题?
(我需要删除标签)
答案 0 :(得分:3)
你需要逃避这些角色而不是剥离它们。您可以使用htmlspecialchars功能来实现它。例如:
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // <a href='test'>Test</a>
它将特殊字符作为HTML实体转义,以便正确显示它们。
答案 1 :(得分:0)
你可以用他们的eqiualents替换标签,不要删除它。 使用
htmlspecialchars()
答案 2 :(得分:0)
我不确定为什么你想要这样做,但你可以通过
删除<
和>
$stripped = str_replace(array('<', '>'), '', $text);
但我会建议转义字符串,而不是像这样
$escaped = htmlspecialchars($text);
// or
$escaped = htmlentities($text);
答案 3 :(得分:0)
虽然正确答案是使用其他答案中提到的htmlentities,但在剥离代码之前,您始终可以使用数组预处理$text
。
$search = array('<3', ':<');
$replace = array('<3', ':<');
echo strip_tags(str_replace($search, $replace, $text));
显然,每次获得这些特殊情况的新实例时,您都必须更新数组 - 因此,可能需要考虑正确的结果。
答案 4 :(得分:0)
如果您想将其放入数据库,请不要使用strip_tags
,而应使用相应的mysqli_real_escape_string
函数或prepared statements。之后,在html页面上输出内容时,请使用htmlspecialchars