预定义常量
最后更新于:2022-04-02 02:27:44
[TOC]
## INPUT 常量
```
INPUT_POST
INPUT_GET
INPUT_COOKIE
INPUT_ENV
INPUT_SERVER
```
## FILTER 标量
```
FILTER_REQUIRE_SCALAR 此标记要求输入的是标量
FILTER_REQUIRE_ARRAY 需要输入的是数组
FILTER_FORCE_ARRAY 一律返回数组
// 验证
FILTER_VALIDATE_INT
FILTER_VALIDATE_BOOLEAN
FILTER_VALIDATE_FLOAT
FILTER_VALIDATE_REGEXP
FILTER_VALIDATE_URL
FILTER_VALIDATE_EMAIL
FILTER_VALIDATE_IP
FILTER_VALIDATE_MAC
FILTER_DEFAULT 标记默认的 "unsafe_raw" 过滤器。
//把数据转义为对应类型
FILTER_SANITIZE_STRING
FILTER_SANITIZE_STRIPPED
FILTER_SANITIZE_ENCODED
FILTER_SANITIZE_SPECIAL_CHARS
FILTER_SANITIZE_EMAIL
FILTER_SANITIZE_URL
FILTER_SANITIZE_NUMBER_INT
FILTER_SANITIZE_NUMBER_FLOAT
FILTER_SANITIZE_MAGIC_QUOTES
FILTER_CALLBACK 标记 "callback" 过滤器
// 用户 options 的 flags 键
FILTER_NULL_ON_FAILURE 失败时返回 NULL,而非 FALSE
FILTER_FLAG_ALLOW_OCTAL "int" 过滤器允许八进制(octal)标记的字符(0[0-7]+)
FILTER_FLAG_ALLOW_HEX "int" 过滤器允许十六进制(Hex)标记的字符(0x[0-9a-fA-F]+
FILTER_FLAG_STRIP_LOW 过滤 ASCII 编码值大于 32 的字符
FILTER_FLAG_STRIP_HIGH 过滤 ASCII 编码值大于 127 的字符
FILTER_FLAG_ENCODE_LOW 字符的 ASCII 编码值大于 32
FILTER_FLAG_ENCODE_HIGH 字符的 ASCII 编码值大于 127
FILTER_FLAG_ENCODE_AMP 为 & 编码
FILTER_FLAG_NO_ENCODE_QUOTES 不要为 ' 和 " 编码
FILTER_FLAG_EMPTY_STRING_NULL (目前不能使用。
FILTER_FLAG_ALLOW_FRACTION "number_float" 过滤器允许小数部分
FILTER_FLAG_ALLOW_THOUSAND "number_float" 过滤器允许使用千分位分隔符(,)
FILTER_FLAG_ALLOW_SCIENTIFIC "number_float" 过滤器允许使用科学计数法(e、E)
FILTER_FLAG_PATH_REQUIRED "validate_url" 过滤器,要求带路径部分
FILTER_FLAG_QUERY_REQUIRED "validate_url" 过滤器,要求带 Query 部分
FILTER_FLAG_IPV4 "validate_ip" 过滤器,仅仅允许 IPv4 地址
FILTER_FLAG_IPV6 "validate_ip" 过滤器,仅仅允许 IPv6 地址
FILTER_FLAG_NO_RES_RANGE "validate_ip" 过滤器,禁止保留 IP 地址
FILTER_FLAG_NO_PRIV_RANGE "validate_ip" 过滤器,禁止私有 IP 地址
FILTER_FLAG_EMAIL_UNICODE "validate_email" 过滤器,在邮件地址用户名部分允许 Unicode 字符。 (PHP 7.1.0 起有效)
```
## FILTER_SANITIZE_xxx 用于对字符进行消毒
如 对email 进行消毒
```
$a = '(bogus@example.org) ';
// 对 $a 虑空
$sanitized_a = filter_var($a, FILTER_SANITIZE_EMAIL); // output: joe@example.org
// 在进行比较
if (filter_var($sanitized_a, FILTER_VALIDATE_EMAIL)) {
echo "Yes";
}else{
echo "No";
}
```
';