PHP 進(jìn)階過濾器
用過濾器偵測一個數(shù)字是否在一個範(fàn)圍內(nèi)
#以下實(shí)例使用了filter_var() 函數(shù)來偵測一個INT 型的變數(shù)是否在1 到200 內(nèi):
<?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("變量值不在合法范圍內(nèi)"); } else { echo("變量值在合法范圍內(nèi)"); } ?>
#程式執(zhí)行結(jié)果:
##變數(shù)值在合法範(fàn)圍內(nèi)部
檢測IPv6 位址
#★FILTER_VALIDATE_IP
過濾器把值當(dāng)作IP 來驗(yàn)證。以下實(shí)例使用了filter_var() 函數(shù)來偵測一個$ip 變數(shù)是否為IPv6 位址:? ? ??
程式運(yùn)行結(jié)果:<?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程式運(yùn)行結(jié)果:「字面意思就是查詢字串例如常見的URL網(wǎng)頁位址都有xxx.asp?pn=123456 ?號後面的就是querystring?以下實(shí)例使用了filter_var() 函數(shù)來偵測$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上面的範(fàn)例中Url的網(wǎng)址裡面沒有包含QUERY_STRING,所以運(yùn)行結(jié)果是否定的答案
移除ASCII 值大於127 的字元
##########★######FILTER_SANITIZE_STRING ###過濾器會移除或編碼不需要的字元。 ###
以下實(shí)例使用了filter_var() 函數(shù)來移除字串中ASCII 值大於127 的字符,同樣它也能移除HTML 標(biāo)籤:
<?php $str = "<h1>Hello World???!</h1>"; $newstr = filter_var($str, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH); echo $newstr; ?>
程式運(yùn)行結(jié)果:
Hello World!
#PHP 篩選器參考手冊
你也可以透過訪問本站的?PHP 過濾器參考手冊?來查看過濾器的特定應(yīng)用。
參考手冊中包含了篩選器參數(shù)的簡要說明和使用範(fàn)例!