什么是php变量的过滤器呢?
php过滤器用于验证和过滤来自非安全来源的数据,使用过滤器可以保证应用程序获得正确的输入类型。
php过滤器函数
filter_var():通过指定的过滤器来过滤单一的变量
filter_var_array():通过相同或不同的过滤器来过滤多个变量
filter_input:获取一个输入变量,并对其进行过滤
filter_input_array:获取多个输入变量,并通过相同或者不同的过滤器对其进行过滤
官网还有三种过滤器
filter_has_var:检测是否存在指定类型的变量
fileter_id:返回与某个特定名称的过滤器相关联的id
filter_list:返回所支持的过滤器列表
接下来一一进行介绍
1.filter_var(var,filter,options);三个参数,返回值:正确则返回过滤后的值,否则返回false。
var 需要过滤的变量名
filter 过滤器类型,这个大家记的话估计也难,给两个地址,大家用的时候可以对照参考,熟能生巧
菜鸟:https://www.runoob.com/php/php-ref-filter.html
php官网:https://www.php.net/manual/zh/filter.filters.php
options 官网给出的介绍是一个选项的关联数组,或者按位区分的标示。如果过滤器接受选项,可以通过数组的 “flags” 位去提供这些标示。 对于回调型的过滤器,应该传入 callable。这个回调函数必须接受一个参数,即待过滤的值,并且 返回一个在过滤/净化后的值。个人的理解的话就是对于所需要进行过滤的变量进行一个判断(有点迷);
<?php
$age = '28';
$min = '18';
$max = '60';
$options = array("options"=>array("min_range"=>$min,"max_range"=>$max));
//过滤器,257=FILTER_VALIDATE_INT
$age = filter_var($age,257,$options);
// 打印输出
var_dump($age);//输出内容 int(28)
// if判断,当变量值不在范围内输出,比如当$age = '70';的时候则输出 “bool(false) 您的年龄不在范围内”
if(!$age){
echo '您的年龄不在范围内';
}else{
else '年龄符合要求';
}
2.filter_var_array(array $data,filter)获取多个变量并过滤它们,返回值为过滤成功后的值,否则返回false
<?php
$a = 20;
$b = '50';
$arr = [$a,$b];
var_dump(filter_var_array($arr,FILTER_VALIDATE_INT));//返回 array(2) { [0]=> int(20) [1]=> int(50) }
3.filter_input(输入类型get/post,变量名,filter) 验证单个输入变量
$options = [“options”=>[“min_range”=>1]];
var_dump(filter_input(INPUT_GET,’id’,FILTER_VALIDATE_INT,$options));
4.filter_input_array()同时验证多个外部变量 filter_input_array(输出类型get/post,args规定了过滤器参数数组,变量名,过滤器filter);
$args = [
"username"=> FILTER_SANITIZE_STRING, // 过滤字符串
"age" => FILTER_VALIDATE_INT, // 过滤整型
"url" => FILTER_VALIDETA_URL, //过滤url地址
"IP" => FILTER_VALIDATE_IP // 过滤ip
];
var_dump(filter_input_array(INPUT_GET,$args));
总结:php过滤器函数目前这四种常用方式,大致的例子,实用方式与一些疑惑地方后续可能会整理出来,过滤器主要的功能就是去其糟泊,取其精华。