批改状态:合格
老师批语:写的挺好!过滤器是保证网站安全的重要利器!
//filter_var(要过滤的变量,过滤器常量);//过滤满十八周岁,小于60岁周岁的$options = ['options'=>['min_range'=>18,'max_range'=>60]];$age = '50';var_dump(filter_var($age,FILTER_VALIDATE_INT,$options));echo '<hr>';$age = '120';var_dump(filter_var($age,FILTER_VALIDATE_INT,$options));

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

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

通常通过http请求发送过来的值,如表单,get,post
//获取get请求中参数id的值echo 'id = ' . $_GET['id'];echo '<hr>';//验证get请求中参数id的值$options = ['options'=>['min_range'=>1]];var_dump(filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT,$options));

$args = ['username'=> FILTER_SANITIZE_STRING, //去除标签以及特殊字符:`strip_tags()`'email'=>FILTER_VALIDATE_EMAIL,'age'=>['filter'=>FILTER_VALIDATE_INT,'options'=>['min_range'=>18,'max_range'=>60]],'blog'=>FILTER_VALIDATE_URL];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() |
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号