我注意到你可以用PHP filter_var函数做很多事情,也可以用其他函数完成.
例如,过滤器FILTER_VALIDATE_REGEXP,FILTER_SANITIZE_ENCODED和许多也有PHP各自的专用功能.
我filter_var什么时候应该使用,什么时候应该使用PHP函数?有哪些优点和缺点?
filter扩展的优势在于您可以将所有内容放在一个位置.
但你是对的,它没有提供太多新颖的功能.你可以做大部分的东西与现有的功能,特别是preg_replace或preg_match不是的FILTER_VALIDATE_REGEXP.或者类型转换,并使用normal htmlspecialchars而不是filter选项.
然而filter_var_array,有一个好处变得明显.您可以按配置过滤每个变量的负载.您可以预先定义一个过滤器列表以同时应用所有过滤器:
$_POST = filter_var_array($_POST, array(
"text" => FILTER_SANITIZE_ENCODED,
"id" => FILTER_VALIDATE_INT,
"title" => FILTER_SANITIZE_ENCODED,
));
Run Code Online (Sandbox Code Playgroud)
我承认这基本上是一个触发的magic_quotes示例,但是你得到了图片.统一.
小智 7
直到今天,我还没有找到比使用filter_var更快(或更好)的方法来从字符串中删除特殊字符
filter_var($string, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH)
Run Code Online (Sandbox Code Playgroud)
像PHP中的许多东西一样,有多种方法可以实现它们.filter_var很方便.