博客列表 >php变量的过滤器函数了解

php变量的过滤器函数了解

余生
余生原创
2020年11月21日 22:23:58847浏览

什么是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。这个回调函数必须接受一个参数,即待过滤的值,并且 返回一个在过滤/净化后的值。个人的理解的话就是对于所需要进行过滤的变量进行一个判断(有点迷);

  1. <?php
  2. $age = '28';
  3. $min = '18';
  4. $max = '60';
  5. $options = array("options"=>array("min_range"=>$min,"max_range"=>$max));
  6. //过滤器,257=FILTER_VALIDATE_INT
  7. $age = filter_var($age,257,$options);
  8. // 打印输出
  9. var_dump($age);//输出内容 int(28)
  10. // if判断,当变量值不在范围内输出,比如当$age = '70';的时候则输出 “bool(false) 您的年龄不在范围内”
  11. if(!$age){
  12. echo '您的年龄不在范围内';
  13. }else{
  14. else '年龄符合要求'
  15. }

2.filter_var_array(array $data,filter)获取多个变量并过滤它们,返回值为过滤成功后的值,否则返回false

  1. <?php
  2. $a = 20;
  3. $b = '50';
  4. $arr = [$a,$b];
  5. 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);

  1. $args = [
  2. "username"=> FILTER_SANITIZE_STRING, // 过滤字符串
  3. "age" => FILTER_VALIDATE_INT, // 过滤整型
  4. "url" => FILTER_VALIDETA_URL, //过滤url地址
  5. "IP" => FILTER_VALIDATE_IP // 过滤ip
  6. ];
  7. var_dump(filter_input_array(INPUT_GET,$args));

总结:php过滤器函数目前这四种常用方式,大致的例子,实用方式与一些疑惑地方后续可能会整理出来,过滤器主要的功能就是去其糟泊,取其精华。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议
灭绝师太2020-11-23 13:50:031楼
对课上的内容做了进一步的拓展,很不错,学习阶段切忌填鸭式学习,作业可以晚交,但一定要自己总结一遍~