以下是PHP支持的过滤器类型的完整列表。
验证过滤器
ID | 名称 | 选项 | 标志 | 描述 |
---|---|---|---|---|
FILTER_VALIDATE_BOOLEAN、FILTER_VALIDATE_BOOL | "boolean" | 默认 | FILTER_NULL_ON_FAILURE | 对于"1"、"true"、"on"和"yes"返回true。否则返回 false。 如果设置了 FILTER_NULL_ON_FAILURE,则仅对"0"、"false"、"off"、"no"和""返回 false,对所有非布尔值返回 null。 |
FILTER_VALIDATE_DOMAIN | "validate_domain" | 默认 | FILTER_FLAG_HOSTNAME、FILTER_NULL_ON_FAILURE | 验证域名标签添加长度是否有效。 可选标志:FILTER_FLAG_HOSTNAME指定了验证主机名的功能(它们必须以字母数字字符开头,并且底部仅包含字母数字或连字符)。 |
FILTER_VALIDATE_EMAIL | "validate_email" | 默认 | FILTER_FLAG_EMAIL_UNICODE、FILTER_NULL_ON_FAILURE | 验证是否有效的电子邮箱 |
FILTER_VALIDATE_FLOAT | "float" | 默认、小数、min_range、max_range | FILTER_FLAG_ALLOW_THOUSAND, FILTER_NULL_ON_FAILURE | 将值验证为浮点型(任选)指定范围内的值,并在成功时转换为浮点型。 |
FILTER_VALIDATE_INT | "int" | default, min_range, max_range | FILTER_FLAG_ALLOW_OCTAL, FILTER_FLAG_ALLOW_HEX, FILTER_NULL_ON_FAILURE | 将值验证为整数(可)选)指定范围内的值,并在成功时转换为int。 |
FILTER_VALIDATE_IP | "validate_ip" | default< /td> | FILTER_FLAG_IPV4、FILTER_FLAG_IPV6、FILTER_FLAG_NO_PRIV_RANGE、FILTER_FLAG_NO_RES_RANGE、FILTER_NULL_ON_FAILURE | 将值验证为 IP 地址,任选地仅限 IPv4 或 IPv6,或者不来自或来自范围保留。 |
FILTER_VALIDATE_MAC | "validate_mac_address" | 默认 | FILTER_NULL_ON_FAILURE | 验证是否为MAC地址。< /td> |
FILTER_VALIDATE_REGEXP | "validate_regexp" | 默认,正则表达式 | FILTER_NULL_ON_FAILURE | 根据regexp(与 Perl 兼容的正则表达式)验证值。 |
FILTER_VALIDATE_URL | "validate_url" | default | FILTER_FLAG_SCHEME_REQUIRED, FILTER_FLAG_HOST_REQUIRED, FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED, FILTER_NULL_ON_FAILURE | 将值验证为 URL,可以选择使用所需的组件。请注意,有效的 URL 可能不会指定 HTTP 协议 http://,因此可能需要进一步验证 URL 使用预期的协议,例如 ssh:// 或 mailto:。请注意,该函数只能发现 ASCII URL 有效;国际化域名(包含非 ASCII 字符)将失败。 |
清理过滤器
ID | 名称 | 标志 | 说明 |
---|---|---|---|
FILTER_SANITIZE_EMAIL | "email" | 删除除字母、数字和!#$%&'*+-=?^_`{|}~@.[]之外的所有字符。 | |
FILTER_SANITIZE_ENCODED | "encoded" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH | URL编码字符串,可以选择删除或编码特殊字符。 |
FILTER_SANITIZE_MAGIC_QUOTES | "magic_quotes" | 应用addslashes() (自 PHP 7.3.0 起已弃用,自 PHP 8.0.0 起已删除。) | |
FILTER_SANITIZE_ADD_SLASHES | "add_slashes" | 应用addslashes()。(从PHP 7.3.0起可用) | |
FILTER_SANITIZE_NUMBER_FLOAT | "number_float" | FILTER_FLAG_ALLOW_FRACTION、FILTER_FLAG_ALLOW_THOUSAND、FILTER_FLAG_ALLOW_SCIENTIFIC | 删除除数字、+- 和任选的 .,eE 之外的所有字符。 |
"number_int" | 删除除数字、加号和减号之外的所有字符。 | ||
FILTER_SANITIZE_SPECIAL_CHARS | "special_chars" | FILTER_FLAG_STRIP_LOW、FILTER_FLAG_STRIP_HIGH、FILTER_FLAG_STRIP_BACKTICK、FILTER_FLAG_ENCODE_HIGH | HTML 编码""<>&以及 ASCII 值小于 32 的字符,可选择剥离或编码其他特殊字符。 |
FILTER_SANITIZE_FULL_SPECIAL_CHARS | "full_special_chars" | FILTER_FLAG_NO_ENCODE_QUOTES | 相当于在设置了 ENT_QUOTES 的情况下调用 htmlspecialchars()。 |
FILTER_SANITIZE_STRING | "string" | FILTER_FLAG_NO_ENCODE_QUOTES , FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP | 删除标签并对双引号和单引号进行 HTML 编码,可选择删除或编码特殊字符。 |
FILTER_SANITIZE_STRIPPED | "stripped" | "字符串"过滤器的别名。 | |
FILTER_SANITIZE_URL | "url" | 删除除字母、数字和$-_.+!*'(),{}|\\^~[]之外的所有字符`<>#%";/?:@&=. | |
FILTER_UNSAFE_RAW | "unsafe_raw" | FILTER_FLAG_STRIP_LOW 、FILTER_FLAG_STRIP_HIGH、FILTER_FLAG_STRIP_BACKTICK、FILTER_FLAG_ENCODE_LOW、FILTER_FLAG_ENCODE_HIGH、FILTER_FLAG_ENCODE_AMP | 不执行任何操作,可以选择删除或编码特殊字符。 |
其他过滤器
ID | 名称 | 选项 | 标志 | 描述 |
---|---|---|---|---|
FILTER_CALLBACK | "callback" | 可调用函数或方法 | 忽略所有标志 | 调用用户定义的函数来过滤数据。 |
过滤器标志
ID | 与 | 说明 |
---|---|---|
FILTER_FLAG_STRIP_LOW | FILTER_SANITIZE_ENCODED、FILTER_SANITIZE_SPECIAL_CHARS、FILTER_SANITIZE_STRING、FILTER_UNSAFE_RAW | 删除数值 <32 的字符。 |
FILTER_FLAG_STRIP_HIGH | FILTER_SANITIZE_ENCODED、FILTER_SANITIZE_SPECIAL_CHARS、FILTER_SANITIZE_STRING、FILTER_UNSAFE_RAW | 删除数值大于 127 的字符。 |
FILTER_FLAG_STRIP_BACKTICK | FILTER_SANITIZE_ENCODED、FILTER_SANITIZE_SPECIAL_CHARS、FILTER_SANITIZE_STRING、FILTER_UNSAFE_RAW | 删除反引号字符。 |
FILTER_FLAG_ALLOW_FRACTION | FILTER_SANITIZE_NUMBER_FLOAT | 允许使用句点 (.) 作为数字中的小数分隔符。 |
FILTER_FLAG_ALLOW_THOUSAND | FILTER_SANITIZE_NUMBER_FLOAT、FILTER_VALIDATE_FLOAT | |
FILTER_FLAG_ALLOW_SCIENTIFIC | FILTER_SANITIZE_NUMBER_FLOAT | 允许 e 或 E用于数字的科学记数法。 |
FILTER_FLAG_NO_ENCODE_QUOTES | FILTER_SANITIZE_STRING | 如果存在此标志,则单 (') 和双 (" ) 引号不会被编码。 |
FILTER_FLAG_ENCODE_LOW | FILTER_SANITIZE_ENCODED、FILTER_SANITIZE_STRING、FILTER_SANITIZE_RAW | 对数值 << 的所有字符进行编码。 32. |
FILTER_FLAG_ENCODE_HIGH | FILTER_SANITIZE_ENCODED、FILTER_SANITIZE_SPECIAL_CHARS、FILTER_SANITIZE_STRING、FILTER_SANITIZE_RAW | 对数值大于 127 的所有字符进行编码。< /td> |
FILTER_FLAG_ENCODE_AMP | FILTER_SANITIZE_STRING、FILTER_SANITIZE_RAW | 对与号 (&) 进行编码。 |
FILTER_FLAG_ALLOW_OCTAL | FILTER_VALIDATE_INT | 将以零 (0) 开头的输入视为八进制数。这只允许后续数字为 0-7。 |
FILTER_FLAG_ALLOW_HEX | FILTER_VALIDATE_INT | 将以 0x 或 0X 开头的输入视为十六进制数。这只允许后续字符为 a-fA-F0-9。 |
FILTER_FLAG_EMAIL_UNICODE | FILTER_VALIDATE_EMAIL | 允许电子邮件地址包含 Unicode 字符。 |
FILTER_FLAG_IPV4 | FILTER_VALIDATE_IP | 允许 IP 地址采用 IPv4 格式。 |
FILTER_FLAG_IPV4 | FILTER_VALIDATE_IP | 允许 IP 地址采用 IPv4 格式。 |
FILTER_FLAG_IPV6 | FILTER_VALIDATE_IP | 允许 IP 地址采用 IPv6 格式。 |
FILTER_FLAG_NO_RES_RANGE | FILTER_VALIDATE_IP | 以下地址验证失败保留的 IPv4 范围:0.0.0.0/8、169.254.0.0/16、127.0.0.0/8 和 240.0.0.0/4。 以下保留的 IPv6 范围验证失败:::1/128 、::/128、::ffff:0:0/96 和 fe80::/10。 |
FILTER_FLAG_SCHEME_REQUIRED | FILTER_VALIDATE_URL | |
FILTER_FLAG_HOST_REQUIRED | FILTER_VALIDATE_URL | 要求 URL 包含主机部分。 |
FILTER_FLAG_PATH_REQUIRED | FILTER_VALIDATE_URL | 要求 URL 包含路径部分。 |
FILTER_FLAG_QUERY_REQUIRED | FILTER_VALIDATE_URL | 要求 URL 包含查询字符串。 |
FILTER_REQUIRE_SCALAR | 要求值是标量。 | |
FILTER_REQUIRE_ARRAY | 要求值是数组. | |
FILTER_FORCE_ARRAY | 如果该值是标量,则将其视为数组,并将标量值作为唯一元素。 |