外部变量过滤用filter_input()
|—外部变量的来源:表单、cookies、服务器变量、web服务数据、数据库查询结果
|—用于验证GET、POST、PUT等传过来的值的过滤
|—filter_input(‘输入类型get/post’,字符串表示的变更名,过滤器,选项参数)
|—echo ‘id=’.$GET[‘id’];
|—filter_input(INPUT_GET,’id’,FILTER_VALIDATE_INT,$options);
];
'username'=>FILTER_SANITIZE_STRING,
'email'=>FILTER_VALIDATE_EMAIL,
'age'=>['filter'=>FILTER_VALIDATE_INT,'options'=>['min_range'=>18,'max_range'=>60]],
'blog'=>FILTER_VALIDATE_URL,
常用的过滤器函数
序号 | 函数 | 描述 |
---|---|---|
1 | filter_list() | 返回所支持的过滤器列表 |
2 | filter_id() | 返回与某个特定名称的过滤器相关联的id |
3 | filter_var() | 过滤单个变量 |
4 | filter_var_array() | 过滤多个变量 |
5 | filter_has_var() | 检测是否存在指定类型的变量 |
6 | filter_input() | 过滤单个外部变量 |
7 | filter_input_array() | 过滤多个外部变量 |
过滤器分为验证过滤器和清理过滤器
|—验证过滤器
|序号|过滤器函数|描述|
|——|————-|—-|
|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布尔选项的返回值类型
|—返回’true’的情况:’1’,’true’,’on’,’yes’….
|—返回’false’的情况:’0’,’false’,’off’,’no’
|—返回’null’的情况:除过以上情况
|—清理过滤器:去掉非法字符,仅保留指定内容
|序号|过滤器函数|描述|
|——|————-|—-|
|1|FILTER_UNSAFE_RAM|保持原始数据|
|2|FILTER_CALLBACK|自定义函数过滤数据|
|3|FILTER_SANITIZE_STRING|去掉标签以及特殊字符:’strip_tags()|
|4|FILTER_SANITIZE_ENCODED|URL-encode字符串,去除或编码特殊字符|
|5|FILTER_SANITIZE_SPECIAL_CHARS|HTML转义字符|
|6|FILTER_SANITIZE_STRIPPED|string过滤器别名|
|7|FILTER_SANITIZE_EMAIL|仅保留合法的email地址|
|8|FILTER_SANITIZE_URL|仅保留合法的url地址|