您好!欢迎访问家园网-www.jy.wang!

家园网

php的filter_input函数的参数$filter有哪些过滤器类型?请用表格列出,越全越好

网络 作者:本站 点击:

PHP的filter_input()函数中$filter参数支持的过滤器类型可分为‌验证过滤器‌(Validate)和‌清理过滤器‌(Sanitize)两大类。以下是完整过滤器类型清单:

📋 验证过滤器(VALIDATE)

过滤器常量作用说明
FILTER_VALIDATE_BOOLEAN258验证布尔值(true/false/1/0/on/off等)
FILTER_VALIDATE_EMAIL274验证电子邮件格式(如user@example.com
FILTER_VALIDATE_FLOAT259验证浮点数,可指定小数点精度
FILTER_VALIDATE_INT257验证整数,可指定范围(min_range/max_range
FILTER_VALIDATE_IP275验证IP地址(支持IPv4/IPv6)
FILTER_VALIDATE_MAC287验证MAC地址(如00:1A:2B:3C:4D:5E
FILTER_VALIDATE_REGEXP272按正则表达式验证(需通过options传正则)
FILTER_VALIDATE_URL273验证URL格式(支持http:///https://
FILTER_VALIDATE_DOMAIN277验证域名(如example.com

清理过滤器(SANITIZE)

过滤器常量作用说明
FILTER_SANITIZE_EMAIL517清除邮箱非法字符(保留A-Za-z0-9@._-
FILTER_SANITIZE_ENCODED514URL编码特殊字符(类似urlencode()
FILTER_SANITIZE_NUMBER_FLOAT520保留数字、小数点、正负号(如+3.14
FILTER_SANITIZE_NUMBER_INT519仅保留数字和正负号(如-42
FILTER_SANITIZE_SPECIAL_CHARS515HTML转义特殊字符(< > & ' "转实体)
FILTER_SANITIZE_FULL_SPECIAL_CHARS522等同于htmlspecialchars()
FILTER_SANITIZE_STRING513去除HTML标签(PHP 8.1+已废弃)
FILTER_SANITIZE_STRIPPED513FILTER_SANITIZE_STRING的别名
FILTER_SANITIZE_URL518清除URL非法字符(保留`$-_.+!*'(),{}^~[]`等)
FILTER_SANITIZE_ADD_SLASHES523添加反斜杠转义引号(类似addslashes()
FILTER_UNSAFE_RAW516不做过滤,但可通过标志控制行为(如FILTER_FLAG_STRIP_LOW

⚙️ 特殊类型

过滤器常量作用说明
FILTER_DEFAULT516默认过滤器(等同于FILTER_UNSAFE_RAW
FILTER_CALLBACK1024自定义回调函数过滤(需通过options传函数)

🔧 常用过滤标志(Flags)

通过$options参数传递:

  • FILTER_FLAG_STRIP_LOW:删除ASCII<32的字符

  • FILTER_FLAG_STRIP_HIGH:删除ASCII>127的字符

  • FILTER_FLAG_ALLOW_FRACTION:允许浮点数的小数部分

  • FILTER_FLAG_ALLOW_THOUSAND:允许千位分隔符(如1,000

  • FILTER_FLAG_IPV4/FILTER_FLAG_IPV6:限定IP类型9

使用示例

// 验证整数(范围1-100)
$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT, [
    'options' => ['min_range' => 1, 'max_range' => 100]
]); :ml-citation{ref="4,8" data="citationList"}
// 清理URL参数
$url = filter_input(INPUT_GET, 'url', FILTER_SANITIZE_URL); :ml-citation{ref="3,9" data="citationList"}
// 自定义回调过滤
$data = filter_input(INPUT_POST, 'text', FILTER_CALLBACK, [
    'options' => 'strip_tags'
]); :ml-citation{ref="5" data="citationList"}

💡 提示:验证失败时返回false,未找到变量时返回null,清理过滤器始终返回字符串。


标签: