From 89f7f37af1d216ea3984150b879e185ad3b26c84 Mon Sep 17 00:00:00 2001 From: towserchen Date: Fri, 5 Feb 2021 22:39:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=BF=87=E6=BB=A4=E5=99=A8?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E7=9A=84=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reference/filter/filters.xml | 774 +++++++++++++++++++++++++++++++++++ 1 file changed, 774 insertions(+) create mode 100644 reference/filter/filters.xml diff --git a/reference/filter/filters.xml b/reference/filter/filters.xml new file mode 100644 index 000000000..aca121034 --- /dev/null +++ b/reference/filter/filters.xml @@ -0,0 +1,774 @@ + + + + + Types of filters + + +
+ Validate filters + + + Listing of filters for validation + + + + ID + Name + Options + Flags + Description + + + + + FILTER_VALIDATE_BOOLEAN + "boolean" + + default + + + 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" + + default + + + FILTER_FLAG_HOSTNAME + + + + 验证域名长度是否有效 + + + 根据 RFC 1034, RFC 1035, RFC 952, RFC 1123, RFC 2732, RFC 2181 和 RFC 1123 验证域名。 + 可选标志 FILTER_FLAG_HOSTNAME 增加了验证主机名的能力(主机名必须以字母数字字符开头,并且只 + 包含字母数字或连字符)。 + + + + + FILTER_VALIDATE_EMAIL + "validate_email" + + default + + + FILTER_FLAG_EMAIL_UNICODE + + + + 验证是否是有效的邮箱地址 + + + 通常,这将根据 RFC 822 中的语法验证电子邮件地址,但不支持注释、空白和没有点号的域名。 + + + + + FILTER_VALIDATE_FLOAT + "float" + + default, + decimal, + min_range, + max_range + + + FILTER_FLAG_ALLOW_THOUSAND + + 验证值是否为浮点数,可以从指定范围中选择,成功后转换为浮点类型。 + + + FILTER_VALIDATE_INT + "int" + + default, + min_range, + max_range + + + FILTER_FLAG_ALLOW_OCTAL, + FILTER_FLAG_ALLOW_HEX + + 验证值是否为整数,可以从指定范围中选择,成功后转换为整数类型。 + + + FILTER_VALIDATE_IP + "validate_ip" + + default + + + FILTER_FLAG_IPV4, + FILTER_FLAG_IPV6, + FILTER_FLAG_NO_PRIV_RANGE, + FILTER_FLAG_NO_RES_RANGE + + + 验证值是否是 IP 地址,可选 IPV4、IPV6 或者不从私有地址或保留地址中选择。 + + + + FILTER_VALIDATE_MAC + "validate_mac_address" + + default + + + 验证值是否是 MAC 地址。 + + + FILTER_VALIDATE_REGEXP + "validate_regexp" + + default, + regexp + + + + 根据 regexp 验证值,这是一个 兼容 Perl 的正则表达式验证器。 + + + + FILTER_VALIDATE_URL + "validate_url" + + default + + + FILTER_FLAG_SCHEME_REQUIRED, + FILTER_FLAG_HOST_REQUIRED, + FILTER_FLAG_PATH_REQUIRED, + FILTER_FLAG_QUERY_REQUIRED + + + 验证值是否是 URL (根据&url.rfc;2396),可选择所使用的组件。注意,一个有效的 URL 可能没有指定 HTTP 协议 http://,因此可能需要进一步验证来确定 URL 所使用的协议,例如 ssh://mailto: 。注意,这个函数只查找有效的 ASCII URL,国际化域名(包含非 ASCII 字符)将被认为不合法。 + + + + +
+
+ + + 从 5.4.11 起,数字 +0 和 -0 将被认为即是整数也是浮点数(使用 FILTER_VALIDATE_FLOATFILTER_VALIDATE_INT 标志)。在 PHP 5.4.11 之前,他们只被验证为浮点数(使用 FILTER_VALIDATE_FLOAT)。 + + + 当使用 default 选项时,如果验证不通过将使用 default 的值。 + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 7.4.0 + + 为 FILTER_VALIDATE_FLOAT 增加 min_rangemax_range + 选项。 + + + + 7.0.0 + + 增加 FILTER_FLAG_HOSTNAMEFILTER_VALIDATE_DOMAIN. + + + + 5.5.0 + + 增加 FILTER_VALIDATE_MAC. + + + + 5.2.1 + + FILTER_VALIDATE_URL 现在隐式使用 + FILTER_FLAG_SCHEME_REQUIRED 和 + FILTER_FLAG_HOST_REQUIRED. + + + + + + + + +
+ + + +
+ Sanitize filters + + + List of filters for sanitization + + + + ID + Name + Flags + Description + + + + + 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_encode 字符串,可以剔除特殊字符或对它们编码。 + + + FILTER_SANITIZE_MAGIC_QUOTES + "magic_quotes" + + addslashes. + + + FILTER_SANITIZE_NUMBER_FLOAT + "number_float" + + FILTER_FLAG_ALLOW_FRACTION, + FILTER_FLAG_ALLOW_THOUSAND, + FILTER_FLAG_ALLOW_SCIENTIFIC + + + 删除除 +- 以外的所有字符,额外可选 .,eE。 + + + + FILTER_SANITIZE_NUMBER_INT + "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 转义 '"<>& 和小于 32 的 ASCII 字符,可选剔除或编码特殊字符。 + + + + FILTER_SANITIZE_FULL_SPECIAL_CHARS + "full_special_chars" + + FILTER_FLAG_NO_ENCODE_QUOTES, + + + 相当于调用 htmlspecialchars 并设置 ENT_QUOTES。可以通过设置 FILTER_FLAG_NO_ENCODE_QUOTES + 来禁止编码引号。与 htmlspecialchars 类似,这个过滤器能够识别 default_charset 并且如果检测到组成 + 当前字符串中的无效字符的字符序列,则整个字符串都将被拒绝,并产生一个长度为 0 的字符串。当使用此过滤器时,请参阅下面关于将默认标志设置为 0 的警告。 + + + + 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 + + 剔除标签, 可选剔除或编码特殊字符。 + + + 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 + + + 什么也不做,或选择剔除 或编码特使字符。这个过滤器也有别名 FILTER_DEFAULT 。 + + + + +
+
+ + + 当通过ini文件或web服务器的配置使用其中一个过滤器作为默认过滤器时,默认标志设置 + 为 FILTER_FLAG_NO_ENCODE_QUOTES。您需要显式地 + 将 filter.default_flags 设置为 0,以便默认情况下对引号进行编码。如: + + 将默认过滤器设置为 htmlspecialchars + + + + + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 5.2.11/5.3.1 + + 斜线 (/) 从 FILTER_SANITIZE_EMAIL 中 + 删除。之前他们被保留了下来。 + + + + + + + + +
+ + + +
+ Other filters + + + List of miscellaneous filters + + + + ID + Name + Options + Flags + Description + + + + + FILTER_CALLBACK + "callback" + callable function or method + 所有标志都将被忽略。 + 调用用户定义的函数来过滤数据。 + + + +
+
+
+ + + +
+ Filter flags + + + + List of filter flags + + + + ID + Used with + Description + + + + + 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 + + + 允许数字中使用 eE 作为科学计数法符号。 + + + + 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 的字符。 + + + + FILTER_FLAG_ENCODE_AMP + + FILTER_SANITIZE_STRING, + FILTER_SANITIZE_RAW + + + 编码逻辑与符号 (&)。 + + + + FILTER_NULL_ON_FAILURE + + FILTER_VALIDATE_BOOLEAN + + + 未识别的 boolean 类型值返回 &null;。 + + + + FILTER_FLAG_ALLOW_OCTAL + + FILTER_VALIDATE_INT + + + 将以0(0)开头的输入视为八进制数。这只允许后面的数字为 0-7。 + + + + FILTER_FLAG_ALLOW_HEX + + FILTER_VALIDATE_INT + + + 以 0x0X 开头的输入作为十六进制数。这只允许后面的字符是 a-fA-F0-9。 + + + + FILTER_FLAG_EMAIL_UNICODE + + FILTER_VALIDATE_EMAIL + + + 允许电子邮件地址的本地部分包含 Unicode 字符。 + + + + FILTER_FLAG_IPV4 + + FILTER_VALIDATE_IP + + + 允许IP地址为 IPv4 格式。 + + + + FILTER_FLAG_IPV6 + + FILTER_VALIDATE_IP + + + 允许IP地址为 IPv6 格式。 + + + + FILTER_FLAG_NO_PRIV_RANGE + + FILTER_VALIDATE_IP + + + + 下列范围的 IPV4 地址将被验证失败: + 10.0.0.0/8172.16.0.0/12 和 + 192.168.0.0/16。 + + + 下列开头的 IPV6 地址将被验证失败: + FD or FC. + + + + + FILTER_FLAG_NO_RES_RANGE + + FILTER_VALIDATE_IP + + + + 下列 IPV4 保留地址将被验证失败: + 0.0.0.0/8169.254.0.0/16, + 127.0.0.0/8240.0.0.0/4。 + + + 下列 IPV6 保留地址将被验证失败: + ::1/128, ::/128, + ::ffff:0:0/96fe80::/10。 + + + + + FILTER_FLAG_SCHEME_REQUIRED + + FILTER_VALIDATE_URL + + + 要求 URL 包含 scheme 部分。 + + + + FILTER_FLAG_HOST_REQUIRED + + FILTER_VALIDATE_URL + + + 要求 URL 包含 host 部分。 + + + + FILTER_FLAG_PATH_REQUIRED + + FILTER_VALIDATE_URL + + + 要求 URL 包含 path 部分。 + + + + FILTER_FLAG_QUERY_REQUIRED + + FILTER_VALIDATE_URL + + + 要求 URL 包含 query string (查询字符串)部分。 + + + + FILTER_REQUIRE_SCALAR + + + + 要求值为标量数据。 + + + + FILTER_REQUIRE_ARRAY + + + + 要求值为数组。 + + + + FILTER_FORCE_ARRAY + + + + 如果值是标量,则将其视为数组,标量值仅作为元素。 + + + + +
+
+ + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 7.3.0 + + FILTER_FLAG_SCHEME_REQUIREDFILTER_FLAG_HOST_REQUIRED 的显式使用已被弃用。 + + + + 7.1.0 + + 新增 FILTER_FLAG_EMAIL_UNICODE。 + + + + 5.3.2 + + 新增 FILTER_FLAG_STRIP_BACKTICK。 + + + + 5.2.10 + + FILTER_FLAG_NO_RES_RANGE 也支持 IPV6 地址。 + + + + + + + +
+ +
+ +