我想在插入数据库之前替换php字符串中的<
和>
,因此当用户键入代码时,它不会执行其功能,所以我这样做:< / p>
$comment = str_replace("<", "<", $comment);
$comment = str_replace(">", ">", $comment);
但是我在字符串<3msg
中也有类似的内容,我不想替换它。请如何运行我的代码。
答案 0 :(得分:1)
像这样使用
$comment = str_replace("<", "<", $comment);
$comment = str_replace(">", ">", $comment);
$comment = str_replace("<3msg", "<3msg", $comment);
答案 1 :(得分:0)
如果你在不同的地方有一个角色,你需要更具体,例如总是在这个或其他地方旁边的角色。否则你运气不好,因为你必须准确识别你想要替换的字符。对于场景aboce,有一个名为htmlspecialchars(Link)
的函数如果您想确保没有任何内容干扰您的查询并且不会发生SQL注入攻击,我建议您尽可能多地使用预准备语句。你可以阅读关于这个here的mor,如果这还不够,我可以举例说明。
答案 2 :(得分:0)
如果您要清理数据库输入以删除脚本等,那么您可以使用strip_tags
这样:
$comment = strip_tags($comment)
或者,如果您想保留标签但不允许代码注入,那么您也可以使用htmlspecialchars
进行更彻底和全面的转换,以确保您不会错过任何内容。
答案 3 :(得分:0)
试试这个:
使用php功能:
htmlspecialchars($comment);
答案 4 :(得分:0)
请参阅Here。
您可以使用 htmlentities()来实现输出。
$str = "A 'quote' is <b>and</b>";
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str);
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str, ENT_QUOTES);
<强> PS 强>