PHP 高级过滤器
用过滤器检测一个数字是否在一个范围内
以下实例使用了 filter_var() 函数来检测一个 INT 型的变量是否在 1 到 200 内:
<?php header("Content-type:text/html;charset=utf-8"); $int = 122; $min = 1; $max = 200; if (filter_var($int, FILTER_VALIDATE_INT, array("options" => array("min_range"=>$min, "max_range"=>$max))) === false) { echo("变量值不在合法范围内"); } else { echo("变量值在合法范围内"); } ?>
程序运行结果:
变量值在合法范围内
检测 IPv6 地址
★FILTER_VALIDATE_IP 过滤器把值作为 IP 进行验证。
以下实例使用了 filter_var() 函数来检测一个 $ip 变量是否是 IPv6 地址:
<?php header("Content-type:text/html;charset=utf-8"); $ip = "2001:0db8:85a3:08d3:1319:8a2e:0370:7334"; if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) { echo("$ip 是一个 IPv6 地址"); } else { echo("$ip 不是一个 IPv6 地址"); } ?>
程序运行结果:
2001:0db8:85a3:08d3:1319:8a2e:0370:7334 是一个 IPv6 地址
检测 URL - 必须包含QUERY_STRING(查询字符串)
QUERY_STRING字面意思就是查询字符串 比如常见的URL网页地址都有 xxx.asp?pn=123456 ?号后面的就是querystring
以下实例使用了 filter_var() 函数来检测 $url 是否包含查询字符串:
<?php header("Content-type:text/html;charset=utf-8"); $url = "http://www.baidu.com"; if (!filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED) === false) { echo("$url 是一个合法的 URL"); } else { echo("$url 不是一个合法的 URL"); } ?>
程序运行结果:
http://www.baidu.com 不是一个合法的 URL
上面的例子中Url的网址里面没有包含QUERY_STRING,所以运行结果是一个否定的答案
移除 ASCII 值大于 127 的字符
★FILTER_SANITIZE_STRING 过滤器去除或编码不需要的字符。
以下实例使用了 filter_var() 函数来移除字符串中 ASCII 值大于 127 的字符,同样它也能移除 HTML 标签:
<?php $str = "<h1>Hello WorldÆØÅ!</h1>"; $newstr = filter_var($str, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH); echo $newstr; ?>
程序运行结果:
Hello World!
PHP 过滤器参考手册
你也可以通过访问本站的 PHP 过滤器参考手册 来查看过滤器的具体应用。
参考手册中包含了过滤器参数的简要说明和使用例子!