php过滤器是用来验证和过滤用户的输入数据,或者说是来自非安全来源的数据.
1.filter_var过滤验证单个变量
检查一个变量是否符合过滤规则,参数1,2必须,参数三可选。返回过滤后的数据,如果过滤失败则返回 false 。
<?php
//验证一个变量是不是整数且符合规范
$a = 99;
$result = filter_var($a,FILTER_VALIDATE_INT,array(
"options"=>array(
"min_range"=>18,
"max_range"=>99
)
));
if(!$result){
echo "$a不符合规范";
}else{
echo "$a 符合规范,18<=$a<=99";
}
?>
//输出99 符合规范,18<=99<=99
2.filter_var_array(array,filters[,add_empty])过滤验证多个变量
将多个值值使用多个或同一个过滤器过滤
array参数是数组,键是变量名,值就是变量值;filters也是数组,键是对应array参数的键,每个键可以添加filterid,选项options,标签,
<?php
$vars = array(
"name"=>"aa<script>",
"age"=>48,
"gender"=>0
);
function genddeng($str){
if($str==0){
return "boy";
}else{
return "girl";
}
}
$filtar = array(
"name"=>FILTER_SANITIZE_ENCODED,
"age"=>array(
"filter"=>FILTER_VALIDATE_INT,
"options"=>array(
"min_range"=>18,
"max_range"=>48
)
),
"gender"=>array(
"filter"=>FILTER_CALLBACK,
"options"=>"genddeng"
)
);
$mes = filter_var_array($vars, $filtar);
var_dump($mes);
?>
//结果
array(3) {
["name"]=>
string(14) "aa%3Cscript%3E"
["age"]=>
int(48)
["gender"]=>
string(3) "boy"
}
3.filter_id(过滤器名称),获取过滤器名称对应的过滤器的 ID
获取过滤器名称对应的id号,过滤器名称不是FILTER_VALIDATE_EMAIL,FILTER_VALIDATE_URL这样的过滤器ID 名称
过滤器的 ID 号主要是为了更便捷[也更难记忆这些号码],比如过滤器FILTER_VALIDATE_EMAIL的过滤器的 ID 号是274,过滤器名称是validate_email
<?php
echo(filter_id("validate_email"));
//输出274
?>
4.filter_list()列出所有的过滤器 名称
这里再次强调过滤器名称不是过滤器id名
例子:
过滤器的 ID: FILTER_VALIDATE_EMAIL
过滤器的ID号: 274
过滤器名称: validate_email
<?php
print_r(filter_list());
?>
//输出
Array
(
[0] => int
[1] => boolean
[2] => float
[3] => validate_regexp
[4] => validate_url
[5] => validate_email
[6] => validate_ip
[7] => string
[8] => stripped
[9] => encoded
[10] => special_chars
[11] => unsafe_raw
[12] => email
[13] => url
[14] => number_int
[15] => number_float
[16] => magic_quotes
[17] => callback
)
还有其他的有空再搞…https://www.rfbynet.club是我的网站