语法:filter_var(variable, filter, options)
参数 |
描述 |
variable |
必需。规定要过滤的变量。 |
filter |
可选。规定要使用的过滤器的 ID。 |
options |
规定包含标志/选项的数组。检查每个过滤器可能的标志和选项。 |
PHP Filters
ID 名称 |
描述 |
FILTER_CALLBACK |
调用用户自定义函数来过滤数据。 |
FILTER_SANITIZE_STRING |
去除标签,去除或编码特殊字符。 |
FILTER_SANITIZE_STRIPPED |
"string" 过滤器的别名。 |
FILTER_SANITIZE_ENCODED |
URL-encode 字符串,去除或编码特殊字符。 |
FILTER_SANITIZE_SPECIAL_CHARS |
HTML 转义字符 '"<>& 以及 ASCII 值小于 32 的字符。 |
FILTER_SANITIZE_EMAIL |
删除所有字符,除了字母、数字以及 !#$%&'*+-/=?^_`{|}~@.[] |
FILTER_SANITIZE_URL |
删除所有字符,除了字母、数字以及 $-_.+!*'(),{}|//^~[]`<>#%";/?:@&= |
FILTER_SANITIZE_NUMBER_INT |
删除所有字符,除了数字和 +- |
FILTER_SANITIZE_NUMBER_FLOAT |
删除所有字符,除了数字、+- 以及 .,eE。 |
FILTER_SANITIZE_MAGIC_QUOTES |
应用 addslashes()。 |
FILTER_UNSAFE_RAW |
不进行任何过滤,去除或编码特殊字符。 |
FILTER_VALIDATE_INT |
在指定的范围以整数验证值。 |
FILTER_VALIDATE_BOOLEAN |
如果是 "1", "true", "on" 以及 "yes",则返回 true,如果是 "0", "false", "off", "no" 以及 "",则返回 false。否则返回 NULL。 |
FILTER_VALIDATE_FLOAT |
以浮点数验证值。 |
FILTER_VALIDATE_REGEXP |
根据 regexp,兼容 Perl 的正则表达式来验证值。 |
FILTER_VALIDATE_URL |
把值作为 URL 来验证。 |
FILTER_VALIDATE_EMAIL |
把值作为 e-mail 来验证。 |
FILTER_VALIDATE_IP |
把值作为 IP 地址来验证 |
# 使用举例
# php - filter 参数
# >> - - - - - - <<
# FILTER_CALLBACK - - - 调用用户自定义函数处理数据
function checkVar($value){
echo $value; // true.false@gmail.com
}
//> 变量
$var = "true.false@gmail.com";
$str = 'abc';
$str = filter_var($str, FILTER_CALLBACK
, array('options'=>function
($value){ }));
echo $str;
# >> - - - - - - <<
# FILTER_VALIDATE_INT - - - 在指定的范围以整数验证值
$integer = 12;
// FILTER_VALIDATE_INT 验证成功返回指定的$integer值
// FILTER_VALIDATE_INT 如果存在default参数,验证失败时返回指定default值
// FILTER_VALIDATE_INT 如果不存在default参数,验证失败时返回false值
'min_range' => 0,
'max_range' => 11,
'default' => 6 //> 当前验证失败时返回指定值
),
// 非必选 - 如省略,默认采用十进制比较
// FILTER_FLAG_ALLOW_OCTAL 采用八进制 进行比较
// FILTER_FLAG_ALLOW_HEX 采用十六进制进行比较
'flags' => FILTER_FLAG_ALLOW_OCTAL, ));
# >> - - - - - - <<
# FILTER_VALIDATE_IP - - - 把值作为IP地址来验证
$ip = "192.168.0.1";
// FILTER_VALIDATE_IP 验证成功返回当前$ip值
// FILTER_VALIDATE_IP 验证失败时返回false值
$result = filter_var($ip,FILTER_VALIDATE_IP
); // 192.168.0.1 // FILTER_VALIDATE_IP 默认采用ip4验证 支持一下其他验证FLAG
// FILTER_FLAG_IPV4 ip4地址验证
// FILTER_FALG_IPV6 ip6地址验证
// FILTER_FLAG_NO_PRIV_RANGE 过滤私有地址 (百度)
// FILTER_FLAG_NO_RES_RANGE 过滤保留地址 (百度)
$result = filter_var($ip,FILTER_VALIDATE_IP
,FILTER_FLAG_IPV6
); // false
# >> - - - - - - <<
# FILTER_VALIDATE_URL - - - 把值作为url来验证
$url = "https://tianfumeishi.cn/a/l?a=12";
// 省略第三个参数:默认验证所有的url地址
$uriResult = filter_var($url,FILTER_VALIDATE_URL
); // FILTER_VALIDATE_URL 支持flag参数 (用于第三个参数)
// FILTER_FLAG_QUERY_REQUIRED 要求url中必须包含查询字符串 (验证?结尾的url地址)
// FILTER_FLAG_PATH_REQUIRED 要求格式必须包含为/结尾的路径或者包含文件 (验证域名后紧跟(如/index)参数的地址)
# >> - - - - - - <<
# FILTER_VALIDATE_REGEXP - - - 使用正则验证值
$reg = "12Sd*";
// FILTER_VALIDATE_REGEXP 验证成功返回当前验证值
// FILTER_VALIDATE_REGEXP 验证失败返回false值
'options' => array('regexp'=>"/^[\d]{0,2}[a-zA-Z]{0,2}\*$/") ));
# 更多使用案例 参考文档和手册