它们似乎都是html,javascript标签。那么何时使用哪个? 我试过像
一样<?php
$user_input = "<script>alert('Your site sucks!');</script>";
echo strip_tags($user_input);
?>
和
<?php
$user_input = "<script>alert('Your site sucks!');</script>";
echo filter_var($user_input, FILTER_SANITIZE_STRIPPED);
?>
答案 0 :(得分:3)
strip_tags()
就是这么做的。根据PHP文档,它:
从字符串中删除HTML和PHP标记
filter_var()
为您提供了更多功能,因为您可以使用不同的过滤器,例如FILTER_SANITIZE_EMAIL将清理字符串以返回有效的电子邮件。
根据 FILTER_SANITIZE_STRIPPED ,strip_tags
和filter_var
之间存在差异,具体而言,strip_tags将允许小于symbol,而FILTER_SANITIZE_STRIPPED将使用filter_var将其删除。
即:
strip_tags("testing < practice") will return "testing < practice"
filter_var("testing < practice", FILTER_SANITIZE_STRIPPED) will return "testing "
答案 1 :(得分:0)
strip_tags严格过滤给定字符串中的所有html和php标记。
filter_var根据您可以提供的多个不同标志过滤掉。 它不会纠正字符串,但会对其进行验证
IE:如果你将filter_var与flag:FILTER_VALIDATE_EMAIL一起使用,如果你给它一个有效的电子邮件地址,它将按原样返回,而无效的电子邮件将返回false
答案 2 :(得分:0)
Strip_tags 允许您选择定义您可能希望取消剥离的标签,而 filter_var sanitize 则不需要。