php strip_tags 和 filter_var 函数有什么区别?

Aka*_*khe 10 php

他们似乎都去掉了 html,javascript 标签。那么什么时候使用哪个?我都试过

<?php

$user_input = "<script>alert('Your site sucks!');</script>";

echo strip_tags($user_input);

?>
Run Code Online (Sandbox Code Playgroud)

<?php

$user_input = "<script>alert('Your site sucks!');</script>";

echo filter_var($user_input, FILTER_SANITIZE_STRIPPED);

?>
Run Code Online (Sandbox Code Playgroud)

Kas*_*lek 9

strip_tags()就是这样。根据 PHP 文档,它:

从字符串中去除 HTML 和 PHP 标签

filter_var() 给你更多的工作,因为你可以使用不同的过滤器,即 FILTER_SANITIZE_EMAIL 将清理字符串以返回有效的电子邮件。

就FILTER_SANITIZE_STRIPPEDstrip_tagsfilter_varFILTER_SANITIZE_STRIPPED之间的区别而言,特别是 strip_tags 将允许小于符号,而 filter_var 与 FILTER_SANITIZE_STRIPPED 将删除它。

IE:

strip_tags("testing < practice") will return "testing < practice"
filter_var("testing < practice", FILTER_SANITIZE_STRIPPED) will return "testing "
Run Code Online (Sandbox Code Playgroud)

  • 您应该添加了我编辑过的过滤器的用法。有些人可能不知道如何使用它,信不信由你;-) (2认同)