PHP何时使用filter_var而不是内置的php函数

Tid*_*ddo 6 php filter-var

我注意到你可以用PHP filter_var函数做很多事情,也可以用其他函数完成.

例如,过滤器FILTER_VALIDATE_REGEXP,FILTER_SANITIZE_ENCODED和许多也有PHP各自的专用功能.

filter_var什么时候应该使用,什么时候应该使用PHP函数?有哪些优点和缺点?

mar*_*rio 8

filter扩展的优势在于您可以将所有内容放在一个位置.

但你是对的,它没有提供太多新颖的功能.你可以做大部分的东西与现有的功能,特别是preg_replacepreg_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很方便.