PHP 过滤器函数

以下是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_rangeFILTER_FLAG_ALLOW_THOUSAND, FILTER_NULL_ON_FAILURE将值验证为浮点型(任选)指定范围内的值,并在成功时转换为浮点型。
FILTER_VALIDATE_INT"int"default, min_range, max_rangeFILTER_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"defaultFILTER_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_HIGHURL编码字符串,可以选择删除或编码特殊字符。
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_HIGHHTML 编码""<>&以及 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_LOWFILTER_SANITIZE_ENCODED、FILTER_SANITIZE_SPECIAL_CHARS、FILTER_SANITIZE_STRING、FILTER_UNSAFE_RAW删除数值 <32 的字符。
FILTER_FLAG_STRIP_HIGHFILTER_SANITIZE_ENCODED、FILTER_SANITIZE_SPECIAL_CHARS、FILTER_SANITIZE_STRING、FILTER_UNSAFE_RAW删除数值大于 127 的字符。
FILTER_FLAG_STRIP_BACKTICKFILTER_SANITIZE_ENCODED、FILTER_SANITIZE_SPECIAL_CHARS、FILTER_SANITIZE_STRING、FILTER_UNSAFE_RAW删除反引号字符。
FILTER_FLAG_ALLOW_FRACTIONFILTER_SANITIZE_NUMBER_FLOAT允许使用句点 (.) 作为数字中的小数分隔符。
FILTER_FLAG_ALLOW_THOUSANDFILTER_SANITIZE_NUMBER_FLOAT、FILTER_VALIDATE_FLOAT
FILTER_FLAG_ALLOW_SCIENTIFICFILTER_SANITIZE_NUMBER_FLOAT允许 e 或 E用于数字的科学记数法。
FILTER_FLAG_NO_ENCODE_QUOTESFILTER_SANITIZE_STRING如果存在此标志,则单 (') 和双 (" ) 引号不会被编码。
FILTER_FLAG_ENCODE_LOWFILTER_SANITIZE_ENCODED、FILTER_SANITIZE_STRING、FILTER_SANITIZE_RAW对数值 << 的所有字符进行编码。 32.
FILTER_FLAG_ENCODE_HIGHFILTER_SANITIZE_ENCODED、FILTER_SANITIZE_SPECIAL_CHARS、FILTER_SANITIZE_STRING、FILTER_SANITIZE_RAW对数值大于 127 的所有字符进行编码。< /td>
FILTER_FLAG_ENCODE_AMPFILTER_SANITIZE_STRING、FILTER_SANITIZE_RAW对与号 (&) 进行编码。
FILTER_FLAG_ALLOW_OCTALFILTER_VALIDATE_INT将以零 (0) 开头的输入视为八进制数。这只允许后续数字为 0-7。
FILTER_FLAG_ALLOW_HEXFILTER_VALIDATE_INT将以 0x 或 0X 开头的输入视为十六进制数。这只允许后续字符为 a-fA-F0-9。
FILTER_FLAG_EMAIL_UNICODEFILTER_VALIDATE_EMAIL允许电子邮件地址包含 Unicode 字符。
FILTER_FLAG_IPV4FILTER_VALIDATE_IP允许 IP 地址采用 IPv4 格式。
FILTER_FLAG_IPV4FILTER_VALIDATE_IP允许 IP 地址采用 IPv4 格式。 
FILTER_FLAG_IPV6FILTER_VALIDATE_IP允许 IP 地址采用 IPv6 格式。
FILTER_FLAG_NO_RES_RANGEFILTER_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_REQUIREDFILTER_VALIDATE_URL
FILTER_FLAG_HOST_REQUIREDFILTER_VALIDATE_URL要求 URL 包含主机部分。
FILTER_FLAG_PATH_REQUIREDFILTER_VALIDATE_URL要求 URL 包含路径部分。
FILTER_FLAG_QUERY_REQUIREDFILTER_VALIDATE_URL要求 URL 包含查询字符串。
FILTER_REQUIRE_SCALAR要求值是标量。
FILTER_REQUIRE_ARRAY要求值是数组.
FILTER_FORCE_ARRAY如果该值是标量,则将其视为数组,并将标量值作为唯一元素。