博客列表 >实例演示常用的变量过滤器,不少于五个

实例演示常用的变量过滤器,不少于五个

南宫
南宫原创
2020年07月08日 13:58:13909浏览

1.过滤单个变量 filter_var()

  1. //filter_var(要过滤的变量,过滤器常量);
  2. //过滤满十八周岁,小于60岁周岁的
  3. $options = ['options'=>['min_range'=>18,'max_range'=>60]];
  4. $age = '50';
  5. var_dump(filter_var($age,FILTER_VALIDATE_INT,$options));
  6. echo '<hr>';
  7. $age = '120';
  8. var_dump(filter_var($age,FILTER_VALIDATE_INT,$options));

  1. // 过滤正确邮箱
  2. $email = 'admin@php.cn';
  3. var_dump(filter_var($email,FILTER_VALIDATE_EMAIL));

2.验证多个变量 filter_var_array()

  1. //验证多个变量值是不是int类型
  2. $a = 10;
  3. $b = '90';
  4. $c = "nihao";
  5. $arr = [$a,$b,$c];
  6. var_dump(filter_var_array($arr,FILTER_VALIDATE_INT));

3. 验证外部变量

通常通过http请求发送过来的值,如表单,get,post

filter_input(输入类型get/post,变量名,过滤器,参数)

  1. //获取get请求中参数id的值
  2. echo 'id = ' . $_GET['id'];
  3. echo '<hr>';
  4. //验证get请求中参数id的值
  5. $options = ['options'=>['min_range'=>1]];
  6. var_dump(filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT,$options));

验证多个外部变量

  1. $args = [
  2. 'username'=> FILTER_SANITIZE_STRING, //去除标签以及特殊字符:`strip_tags()`
  3. 'email'=>FILTER_VALIDATE_EMAIL,
  4. 'age'=>['filter'=>FILTER_VALIDATE_INT,'options'=>['min_range'=>18,'max_range'=>60]],
  5. 'blog'=>FILTER_VALIDATE_URL
  6. ];
  7. var_dump(filter_input_array(INPUT_GET,$args));

变量过滤器

过滤器用于验证和过滤来自非安全来源的外部数据,

- 外部数据来源:

序号 数据来源 描述
1 表单 来自表音的用户输入数据
2 Cookies 来自浏览器中的 cookie
3 服务器变量 防止伪装的合法访问
4 Web 服务数据 Web 请求的数据
5 数据库查询结果 数据表中的数据并不可信

常用的过滤器函数:

序号 函数 描述
1 filter_list()
2 filter_id()
3 filter_var() 过滤单个变量
4 filter_var_array() 过滤多个变量
5 filter_has_var() 检测是否存在某个外部变量
6 filter_input() 过滤单个外部变量
7 filter_input_array() 过滤多个外部变量

外部变量类型: INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV

过滤器主要分为二类: 验证过滤器, 清理过滤器

验证过滤器常量

验证过滤器: 又叫”验证器”, 主要用于数据的类型和格式验证
序号 过滤器函数 描述
1 FILTER_VALIDATE_INT 验证整数
2 FILTER_VALIDATE_FLOAT 浮点点验证
3 FILTER_VALIDATE_BOOLEAN 验证布尔项
4 FILTER_VALIDATE_EMAIL 验证邮箱
5 FILTER_VALIDATE_URL 验证 URL 地址
6 FILTER_VALIDATE_IP 验证 IP 地址
7 FILTER_VALIDATE_REGEXP 正则验证

FILTER_VALIDATE_BOOLEAN: 布尔选项的返回值类型

序号 返回值 描述
1 true “1”, “true”, “on” 和 “yes”
2 false “0”, “false”, “off”, “no”, “”
3 null 除以上情形外

清理过滤器常量

清理过滤器: 去掉非法字符,仅保留指定内容

序号 过滤器函数 描述
1 FILTER_UNSAFE_RAW 保持原始数据
2 FILTER CALLBACK 自定义函数过滤数据
3 FILTER_SANITIZE_STRING 去除标签以及特殊字符:strip_tags()
4 FILTER_SANITIZE_STRIPPED “string” 过滤器别名
5 FILTER_SANITIZE_ENCODED URL-encode 字符串,去除或编码特殊字符
6 FILTER_SANITIZE_SPECIAL_CHARS HTML 转义字符, 等价于 htmlspecialchars()
7 FILTER_SANITIZE_EMAIL 仅保留邮箱地址的合法字符
8 FILTER_SANITIZE_URL 仅保留合法的 URL, 必须从协议开始http/https
9 FILTER_SANITIZE_NUMBER_INT 仅保留合法的数字和正负号+-
10 FILTER_SANITIZE_NUMBER_FLOAT 仅保留合法的数字和正负号+- 以及指数 .,eE
11 FILTER_SANITIZE_MAGIC_QUOTES 等价于函数: addslashes()
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议