PHP Filter 简介
PHP 过滤器用于对来自非安全来源的数据(比如用户输入)进行验证和过滤。
是一个很有用的方法,但是自己用的很少.所以专门记录下.以后可以用
基本知识
INPUT_xxx : 这种表示的是你要校验的参数是从哪里获得的.比如INPUT_GET,那么方法就会从$_GET中取对应的变量值进行校验
INPUT_XXX :
INPUT_GET
INPUT_POST
INPUT_COOKIE
INPUT_SERVER
INPUT_ENV
INPUT_SESSION (暂不可以用,应该是预定义出来的,我用的是php7.2.4)
INPUT_REQUEST (暂不可以用,应该是预定义出来的,我用的是php7.2.4)
option,注意这个选项只有当对应的校验规则符合的情况下才会生效,比如min_ranget只会校验数字
min_range:最小值,包含这个值
max_range:最大值,包含这个值
default:当校验不通过的时候的默认值
ucwords:返回的校验之后的值,首字母大写
filter_has_var(type, variable)检查是否存在指定输入类型的变量
![](https://img.haomeiwen.com/i11005865/19d59df1fe986316.png)
案例:判断$_GET中有没有name这个变量
if (!filter_has_var(INPUT_GET, 'name')){
throw new Exception('name null');
}
filter_id(filter_name)返回指定过滤器的 ID 号
没看出有什么实际的作用.注意这里的filter_name指的是从filter_list()函数来获取的过滤器的名称。
filter_list()返回包含所有得到支持的过滤器的一个数组。
我用php7.2.4获得下列这些过滤器
int,boolean,float,validate_regexp,validate_domain,validate_url,validate_email,validate_ip,validate_mac
,string,stripped,encoded,special_chars,full_special_chars,unsafe_raw,email,url,number_int,number_float
,magic_quotes,callback
![](https://img.haomeiwen.com/i11005865/80ab36683f750ea6.png)
需要特别了解的是
FILTER_CALLBACK:通过回调进行校验
![](https://img.haomeiwen.com/i11005865/e0146ec258655d2f.png)
注意:在实际使用的时候,对应的常量不是直接比如INT,而是需要加上前缀,前面都要加上FILTER_.剩下的后面我还没有找到规律.之后有再补充
filter_input(input_type, variable, filter, options)从外部获取输入,并进行过滤
![](https://img.haomeiwen.com/i11005865/2d1d91c6827f7314.png)
input_type对应上面的INPUT_XXX
filter的可以上面filter_list()了解,这个字段其实就是指明你要校验时用的规则
![](https://img.haomeiwen.com/i11005865/93b5f85d3ae84ac3.png)
filter_input_array(input_type, args)从脚本外部获取多项输入,并进行过滤
input_type对应上面的INPUT_XXX
![](https://img.haomeiwen.com/i11005865/a042af1a81f3cbfd.png)
![](https://img.haomeiwen.com/i11005865/043c7213bdb24b56.png)
filter_var_array(array, args)获取多项变量,并进行过滤
![](https://img.haomeiwen.com/i11005865/90d9f9d64aa1febd.png)
和filter_input_array类似,不同就是直接指定要校验的参数
$arr =[
"name" => "peter griffin",
"age" => "41",
"email" => "peter@example.com",
];
filter_var(variable, filter, options)获取一个变量,并进行过滤
![](https://img.haomeiwen.com/i11005865/ee77ad3cbffcdfeb.png)
参考
W3cSchool
网友评论