热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP过滤器详解

本文深入探讨了PHP中的过滤器机制,包括常见的$_SERVER变量、filter_has_var()函数、filter_id()函数、filter_input()函数及其数组形式、filter_list()函数以及filter_var()和其数组形式。同时,详细介绍了各种过滤器的用途和用法。

$_SERVER 变量详解

$_SERVER 是一个超全局变量,包含有诸如头信息(header)、路径(path)和脚本位置等信息。以下是一些常用的 $_SERVER 变量:

  • $_SERVER['HTTP_ACCEPT_LANGUAGE']: 浏览器语言。
  • $_SERVER['REMOTE_ADDR']: 当前用户的 IP 地址。
  • $_SERVER['REMOTE_HOST']: 当前用户的主机名。
  • $_SERVER['REQUEST_URI']: URL 请求的 URI。
  • $_SERVER['SERVER_NAME']: 服务器主机名称。
  • $_SERVER['REMOTE_PORT']: 用户端口。
  • $_SERVER['PHP_SELF']: 正在执行脚本的文件名。
  • $_SERVER['argv']: 传递给该脚本的参数数组。
  • $_SERVER['argc']: 传递给程序的命令行参数个数。
  • $_SERVER['GATEWAY_INTERFACE']: CGI 规范版本。
  • $_SERVER['SERVER_SOFTWARE']: 服务器标识字符串。
  • $_SERVER['SERVER_PROTOCOL']: 请求页面时的通信协议名称和版本。
  • $_SERVER['REQUEST_METHOD']: 请求方法(如 GET、POST 等)。
  • $_SERVER['QUERY_STRING']: 查询字符串。
  • $_SERVER['DOCUMENT_ROOT']: 当前运行脚本所在的文档根目录。
  • $_SERVER['HTTP_ACCEPT']: Accept 头部内容。
  • $_SERVER['HTTP_ACCEPT_CHARSET']: Accept-Charset 头部内容。
  • $_SERVER['HTTP_ACCEPT_ENCODING']: Accept-Encoding 头部内容。
  • $_SERVER['HTTP_CONNECTION']: Connection 头部内容。
  • $_SERVER['HTTP_HOST']: Host 头部内容。
  • $_SERVER['HTTP_REFERER']: 前一页面的 URL 地址。
  • $_SERVER['HTTP_USER_AGENT']: User-Agent 头部内容。
  • $_SERVER['HTTPS']: 如果通过 HTTPS 访问,则返回非空值;否则返回 'off'。
  • $_SERVER['SCRIPT_FILENAME']: 当前执行脚本的绝对路径名。
  • $_SERVER['SERVER_ADMIN']: 管理员信息。
  • $_SERVER['SERVER_PORT']: 服务器使用的端口。
  • $_SERVER['SERVER_SIGNATURE']: 包含服务器版本和虚拟主机名的字符串。
  • $_SERVER['PATH_TRANSLATED']: 当前脚本所在文件系统的基本路径。
  • $_SERVER['SCRIPT_NAME']: 当前脚本的路径。
  • $_SERVER['PHP_AUTH_USER']: HTTP 认证用户名。
  • $_SERVER['PHP_AUTH_PW']: HTTP 认证密码。
  • $_SERVER['AUTH_TYPE']: HTTP 认证类型。

filter_has_var() 函数

filter_has_var() 函数用于检查指定输入类型的变量是否存在。如果存在则返回 TRUE, 否则返回 FALSE。例如:
filter_has_var(INPUT_GET, 'name');
filter_has_var(INPUT_POST, 'name');
filter_has_var(INPUT_COOKIE, 'name');
filter_has_var(INPUT_SERVER, 'name');
filter_has_var(INPUT_ENV, 'name');


filter_id() 函数

filter_id() 函数返回指定过滤器的 ID 号。如果成功则返回过滤器的 ID 号,如果过滤器不存在则返回 NULL。例如:
filter_id('FILTER_SANITIZE_STRING');


filter_input() 函数

filter_input() 函数从外部获取输入并进行过滤。它用于验证来自非安全来源的变量,如用户输入。函数语法如下:
filter_input(input_type, variable, filter, options);
其中:

  • input_type: 必需,规定输入类型(如 INPUT_GET, INPUT_POST 等)。
  • variable: 必需,规定要过滤的变量。
  • filter: 可选,规定要使用的过滤器 ID 或名称,默认是 FILTER_SANITIZE_STRING。
  • options: 可选,规定一个包含标志/选项的关联数组或单一标志/选项。


filter_input_array() 函数

filter_input_array() 函数从外部获取多项输入并进行过滤,类似于 filter_input() 的数组形式。函数语法如下:
filter_input_array(input_type, filter_args);
其中:

  • input_type: 规定外部输入需要过滤的数组。
  • filter_args: 可选,规定过滤器参数的数组,键名为变量名,值为过滤器 ID 或名称。


filter_list() 函数

filter_list() 函数返回所有可用过滤器的名称列表。例如:
$filters = filter_list(); print_r($filters);


filter_var() 函数

filter_var() 函数通过指定的过滤器过滤单个变量。如果成功则返回过滤后的数据,失败则返回 FALSE。函数语法如下:
filter_var(variable, filter, options);
其中:

  • variable: 必需,规定要过滤的变量。
  • filter: 可选,规定要使用的过滤器 ID,默认是 FILTER_SANITIZE_STRING。
  • options: 可选,规定一个包含标志/选项的关联数组或单一标志/选项。


filter_var_array() 函数

filter_var_array() 函数获取多个变量并进行过滤,是 filter_var() 的数组形式。函数语法如下:
filter_var_array(array, args);
其中:

  • array: 必需,规定带有字符串键名的数组,包含要过滤的数据。
  • args: 可选,规定过滤参数数组,键名为变量名,值为过滤器 ID。


PHP 过滤器

PHP 提供了一系列内置过滤器来处理不同类型的输入数据。以下是常见的过滤器:

  • FILTER_CALLBACK: 调用用户自定义函数来过滤数据。
  • FILTER_SANITIZE_STRING: 去除标签并编码特殊字符。
  • FILTER_SANITIZE_STRIPPED: 别名为 "string" 过滤器。
  • FILTER_SANITIZE_ENCODED: URL 编码字符串并去除或编码特殊字符。
  • FILTER_SANITIZE_SPECIAL_CHARS: HTML 转义字符。
  • FILTER_SANITIZE_EMAIL: 删除无效字符,保留有效电子邮件字符。
  • FILTER_SANITIZE_URL: 删除无效字符,保留有效 URL 字符。
  • FILTER_SANITIZE_NUMBER_INT: 删除非数字字符,保留整数。
  • FILTER_SANITIZE_NUMBER_FLOAT: 删除非数字字符,保留浮点数。
  • FILTER_SANITIZE_MAGIC_QUOTES: 应用 addslashes()。
  • FILTER_UNSAFE_RAW: 不进行任何过滤。
  • FILTER_VALIDATE_INT: 验证整数。
  • FILTER_VALIDATE_BOOLEAN: 验证布尔值。
  • FILTER_VALIDATE_FLOAT: 验证浮点数。
  • FILTER_VALIDATE_REGEXP: 使用正则表达式验证。
  • FILTER_VALIDATE_URL: 验证 URL。
  • FILTER_VALIDATE_EMAIL: 验证电子邮件地址。
  • FILTER_VALIDATE_IP: 验证 IP 地址。

推荐阅读
author-avatar
cocoa果果_263
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有