Note: FILTER_NULL_ON_FAILURE, FILTER_REQUIRE_SCALAR, FILTER_REQUIRE_ARRAY and FILTER_FORCE_ARRAY dont have prefix "FILTER_FLAG_" but they are FLAGS!下列常量由此扩展定义,且仅在此扩展编译入 PHP 或在运行时动态载入时可用。
这些常量用于 filter_input() 和 filter_input_array()。
INPUT_POST
    (int)
   INPUT_GET
    (int)
   INPUT_ENV
    (int)
   INPUT_SERVER
    (int)
   INPUT_SESSION
     (int)
   INPUT_REQUEST
     (int)
   FILTER_FLAG_NONE
    (int)
   FILTER_REQUIRE_SCALAR
    (int)
   FILTER_REQUIRE_ARRAY
    (int)
   FILTER_FORCE_ARRAY
    (int)
   FILTER_NULL_ON_FAILURE
    (int)
   null 而不是 false。
    
    
     可与任何验证 FILTER_VALIDATE_*
     过滤器一起使用。
    
   FILTER_FLAG_STRIP_LOW
    (int)
   FILTER_FLAG_STRIP_HIGH
    (int)
   FILTER_FLAG_STRIP_BACKTICK
    (int)
   `)字符。
    
   FILTER_FLAG_ENCODE_LOW
    (int)
   FILTER_FLAG_ENCODE_HIGH
    (int)
   FILTER_FLAG_ENCODE_AMP
    (int)
   &。
    
   FILTER_FLAG_NO_ENCODE_QUOTES
    (int)
   ' 和 ")将不会编码。
    
   FILTER_FLAG_EMPTY_STRING_NULL
    (int)
   null
    
   FILTER_VALIDATE_BOOL
    (int)
   "1"、1(包括二进制、八进制和十六进制表示法)、1.0、"true"、true、"on"
     和 "yes" 返回 true。
    
    
     对于 "0"、0(包括二进制、八进制和十六进制表示法)、0.0、"false"、false、"off"、"no"
     和 "" 返回 false。
    
    
     字符串值的比较不区分大小写。非 bool 值的返回值取决于 FILTER_NULL_ON_FAILURE。如果设置,则返回 null,否则返回 false。
    
    defaultFILTER_VALIDATE_BOOLEAN
    (int)
   FILTER_VALIDATE_BOOL。该别名在 PHP 8.0.0 中引入其规范名称之前可用。
    
   FILTER_VALIDATE_INT
    (int)
   注意: 字符串值在验证之前使用 trim()。
defaultmin_rangemax_rangeFILTER_FLAG_ALLOW_OCTAL
       (int)
      0[0-7]+)。
       
      FILTER_FLAG_ALLOW_HEX
       (int)
      0x[0-9a-fA-F]+)。
       
      FILTER_VALIDATE_FLOAT
    (int)
   注意: 字符串值在验证之前使用 trim()。
defaultdecimalmin_rangemax_rangeFILTER_FLAG_ALLOW_THOUSAND
       (int)
      ,),通常代表千位分隔符。
       
      FILTER_VALIDATE_REGEXP
    (int)
   regexp 选项提供的正则表达式验证值。
    
    defaultregexpFILTER_VALIDATE_URL
    (int)
   defaultFILTER_FLAG_SCHEME_REQUIRED
       (int)
      
         自 PHP 7.3.0 起弃用,自 PHP 8.0.0 起移除。这是因为
         FILTER_VALIDATE_URL 过滤器始终隐含。
        
FILTER_FLAG_HOST_REQUIRED
       (int)
      
         自 PHP 7.3.0 起弃用,自 PHP 8.0.0 起移除。这是因为
         FILTER_VALIDATE_URL 过滤器始终隐含。
        
FILTER_FLAG_PATH_REQUIRED
       (int)
      FILTER_FLAG_QUERY_REQUIRED
       (int)
      
      有效的 URL 可能未指定 HTTP
      协议(http://)。因此,可能需要进一步验证以确定 URL
      是否使用期望的协议,例如 ssh:// 或 mailto:。
     
此过滤器仅适用于 ASCII URL。这意味着将始终拒绝国际化域名(IDN)。
FILTER_VALIDATE_DOMAIN
    (int)
   defaultFILTER_FLAG_HOSTNAME
       (int)
      FILTER_VALIDATE_EMAIL
    (int)
   addr-spec
     语法进行的。拒绝注释、空格折叠和无点域名。
    
    defaultFILTER_FLAG_EMAIL_UNICODE
       (int)
      电子邮件验证很复杂,确认电子邮件有效且存在的唯一真正方法是向该地址发送电子邮件。
FILTER_VALIDATE_IP
    (int)
   验证值为 IP 地址。
defaultFILTER_FLAG_IPV4
       (int)
      FILTER_FLAG_IPV6
       (int)
      FILTER_FLAG_NO_RES_RANGE
       (int)
      由协议保留的范围。
       
       
        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_NO_PRIV_RANGE
       (int)
      
        IPv4 的对应以下范围:
        10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16.
       
FD 或 FC 开头。
       
      FILTER_FLAG_GLOBAL_RANGE
       (int)
      Global 属性是 True。自
        PHP 8.2.0 起可用。
       
      FILTER_VALIDATE_MAC
    (int)
   defaultFILTER_UNSAFE_RAW
    (int)
   FILTER_FLAG_STRIP_* 和
     FILTER_FLAG_ENCODE_* 过滤器清理 flag
     一起使用,可以去除或编码特殊字符。
    
   FILTER_DEFAULT
    (int)
   FILTER_UNSAFE_RAW。
    
   FILTER_SANITIZE_STRING
    (int)
   FILTER_FLAG_STRIP_* 和
     FILTER_FLAG_ENCODE_*
     过滤器清理 flag 一起使用,可以选择性地去除或编码指定字符。
    
    
     可以使用 FILTER_FLAG_NO_ENCODE_QUOTES 过滤器 flag 禁用编码引号的行为。
    
    自 PHP 8.1.0 起弃用,使用 htmlspecialchars() 代替。
此过滤器去除标签的方式不等同于 strip_tags()。
FILTER_SANITIZE_STRIPPED
    (int)
   FILTER_SANITIZE_STRING。
    
    自 PHP 8.1.0 起弃用,使用 htmlspecialchars() 代替。
FILTER_SANITIZE_ENCODED
    (int)
   FILTER_FLAG_STRIP_* 和
     FILTER_FLAG_ENCODE_*
     过滤器清理 flag 一起使用,可以选择性地去除或编码指定字符。
    
   FILTER_SANITIZE_SPECIAL_CHARS
    (int)
   
     此过滤器对
     ', ", <, >, &
     和 ASCII 值小于 32 的字符进行 HTML 编码。与 FILTER_SANITIZE_FULL_SPECIAL_CHARS
     过滤器不同,FILTER_SANITIZE_SPECIAL_CHARS 过滤器会忽略
     FILTER_FLAG_NO_ENCODE_QUOTES flag。
    
FILTER_FLAG_STRIP_* 过滤器清理
     flag 一起使用,可以选择性地去除指定字符,并且可以使用 FILTER_FLAG_ENCODE_HIGH
     对 ASCII 值大于 127 的字符进行编码。
    
   FILTER_SANITIZE_FULL_SPECIAL_CHARS
    (int)
   ENT_QUOTES。
    
    
     可以使用 FILTER_FLAG_NO_ENCODE_QUOTES 过滤器 flag 禁用编码引号的行为。
    
    与 htmlspecialchars() 一样,此过滤器可识别 default_charset INI 设置。如果检测到字节序列构成了当前字符集中的无效字符,则会拒绝整个字符串,从而返回空字符串。
FILTER_SANITIZE_EMAIL
    (int)
   [a-zA-Z])、数字([0-9])和特殊字符
     !#$%&'*+-=?^_`{|}~@.[] 之外的所有字符来清理字符串。
    
   FILTER_SANITIZE_URL
    (int)
   [a-zA-Z])、数字([0-9])和特殊字符
     $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&= 之外的所有字符来清理字符串。
    
   FILTER_SANITIZE_NUMBER_INT
    (int)
   [0-9])、加号(+)和减号(-)之外的所有字符来清理字符串。
    
   FILTER_SANITIZE_NUMBER_FLOAT
    (int)
   [0-9])、加号(+)和减号(-)之外的所有字符来清理字符串。
    
    FILTER_FLAG_ALLOW_FRACTION
       (int)
      .)字符,通常表示为整数部分和小数部分之间的分隔符。
       
      FILTER_FLAG_ALLOW_THOUSAND
       (int)
      ,)字符,通常代表千位分隔符。
       
      FILTER_FLAG_ALLOW_SCIENTIFIC
       (int)
      e 和 E 字符来接受科学计数法中的数字。
       
      
      如果未使用 FILTER_FLAG_ALLOW_FRACTION flag,则会移除小数分隔符,从而改变接收到的值。
     
<?php
$number = '12.34';
var_dump(filter_var($number, FILTER_SANITIZE_NUMBER_FLOAT));
var_dump(filter_var($number, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
?>以上示例会输出:
string(4) "1234" string(5) "12.34"
FILTER_SANITIZE_ADD_SLASHES
    (int)
   FILTER_SANITIZE_MAGIC_QUOTES
    (int)
   FILTER_SANITIZE_ADD_SLASHES。
    
    自 PHP 7.3.0 起弃用,自 PHP 8.0.0 起移除。
FILTER_CALLBACK
    (int)
   'options'
     key 关联的值传递给 options 参数。
    
    callback 应具有以下签名:
value注意: callback 返回的值作为调用过滤函数返回的值。
示例 #1 
      使用 FILTER_CALLBACK 验证登录名的示例
     
<?php
function validate_login(string $value): ?string
{
    if (strlen($value) >= 5 && ctype_alnum($value)) {
        return $value;
    }
    return null;
}
$login = "val1dL0gin";
$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']);
var_dump($filtered_login);
$login = "f&ke login";
$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']);
var_dump($filtered_login);
?>以上示例会输出:
string(10) "val1dL0gin" NULL
      此过滤器不能与其他任何过滤器 flag 一起使用,例如 FILTER_NULL_ON_FAILURE。
     
Note: FILTER_NULL_ON_FAILURE, FILTER_REQUIRE_SCALAR, FILTER_REQUIRE_ARRAY and FILTER_FORCE_ARRAY dont have prefix "FILTER_FLAG_" but they are FLAGS!