PHP 高级过滤器 - filter_var
PHP 提供了 filter_var
函数可以做一些更高级的判断和过滤
检测一个数字是否在一个范围内
下面的范例使用 filter_var() 函数来检测一个 INT 型的变量是否在 1 到 200 内:
<?php $int = 122; $min = 1; $max = 200; $options = array( 'options' => array( "min_range" => $min, "max_range" => $max ) ); if (false === filter_var($int,FILTER_VALIDATE_INT,$options)) { echo '变量值不在合法范围内'; } else { echo '变量值在合法范围内'; } echo '<p>PHP 基础教程 - 简单教程(www.twle.cn)</p>';
运行以上范例,输出结果如下
检测 IPv6 地址
下面的范例使用 filter_var() 函数来检测一个 $ip 变量是否是 IPv6 地址
<?php $ip = "2001:0db8:85a3:08d3:1319:8a2e:0370:7334"; if (false !== filter_var($ip,FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { echo "$ip 是一个 IPv6 地址"; } else { echo "$ip 不是一个 IPv6 地址"; } echo '<p>PHP 基础教程 - 简单教程(www.twle.cn)</p>';
运行以上范例,输出结果如下
检测 URL - 必须包含 QUERY_STRING(查询字符串)
下面的范例使用 filter_var() 函数来检测 $url 是否包含查询字符串
<?php $url = "http://www.twle.cn"; if (false !== filter_var($url,FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED)) { echo "$url 是一个合法的带 Query 的 URL"; } else { echo "$url 不是一个合法的 Query 的 URL"; } echo '<br/><br/>'; $url = "http://www.twle.cn/?name=twle"; if (false !== filter_var($url,FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED)) { echo "$url 是一个合法的带 Query 的 URL"; } else { echo "$url 不是一个合法的 Query 的 URL"; } echo '<p>PHP 基础教程 - 简单教程(www.twle.cn)</p>';
运行以上范例,输出结果如下
移除 ASCII 值大于 127 的字符
下面的范例使用 filter_var() 函数来移除字符串中 ASCII 值大于 127 的字符,同样它也能移除 HTML 标签
<?php $str = "<h1>Hello WorldÆØÅ!</h1>"; $newstr = filter_var($str, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH); echo $newstr; echo '<p>PHP 基础教程 - 简单教程(www.twle.cn)</p>';
运行以上范例,输出结果如下
PHP 过滤器参考手册
如果你想了解更多的 PHP 过滤器知识,可以访问我们的 PHP 过滤器参考手册