PHP 高級過濾器
1. 檢測一個數字是否在一個范圍內
以下范例使用了 filter_var() 函數來檢測一個 int 型的變量是否在 1 到 200 內:
<?php$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("變量值在合法范圍內"); } ?>
2. 檢測 ipv6 地址
以下范例使用了 filter_var() 函數來檢測一個 $ip 變量是否是 ipv6 地址:
<?php$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 地址"); } ?>
3. 檢測 url - 必須包含query_string(查詢字符串)
以下范例使用了 filter_var() 函數來檢測 $url 是否包含查詢字符串:
<?php$url = "http://www.090948.com"; if (!filter_var($url, filter_validate_url, filter_flag_query_required) === false) { echo("$url 是一個合法的 url");} else { echo("$url 不是一個合法的 url"); } ?>
4. 移除 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; ?>