PHP有些函數(shù)被各種小伙伴用爛了。但是也有一些好函數(shù)經(jīng)常被忽略,以至于有些功能其實PHP內置函數(shù)都能解決,而我們小伙伴依然會通過各種稀奇古怪的方法來繞彎走。這里我們說的最常見的就是過濾。
我寫兩個出來,大家體驗一下。
一、filter_has_var 函數(shù)
譬如你還在用 if(isset($_GET[“name”]) 來判斷GET參數(shù) 中有name這個參數(shù)嗎? 或者post參數(shù)、或者cookie里
filter_has_var(INPUT_GET, ‘name’) 可以直接返回true或false
第一個參數(shù) 可以填 INPUT_GET、 INPUT_POST、 INPUT_COOKIE、 INPUT_SERVER、 INPUT_ENV
看英文你應該知道 是干啥的
二、filter_var 函數(shù)
你還在辛辛苦苦的用正則等方式 來驗證 字符串是否為email格式嗎?
echo filter_var(‘shenyi@hishenyi.com, FILTER_VALIDATE_EMAIL);
如果OK 會返回原值,如果不OK 則返回false
第二個參數(shù)有哪些?
驗證為主:
1、FILTER_VALIDATE_BOOLEAN .當?shù)谝粋€參數(shù)是”1″, “true”, “on” and “yes” 這些字符串時會返回true .否則為false 。所以當用戶輸入一些 類似布爾類型的值時,你就無需一個個去寫if else了。這個參數(shù)幫你搞定自動轉換
2、FILTER_VALIDATE_EMAIL 你懂得 ,上面已經(jīng)演示過了。自己想
3、FILTER_VALIDATE_FLOAT 你懂得
4、FILTER_VALIDATE_INT 你懂得
5、FILTER_VALIDATE_IP 你更加懂
6、FILTER_VALIDATE_MAC 是否是mac地址。(不要認為是mac電腦,你覺得可能嗎?)
7、FILTER_VALIDATE_REGEXP 判斷是否是正則表達式(基于PCRE)。這個很有用哦。尤其做后臺時,管理員可能需要進行正則內容的填寫。你可以用來判斷
8、FILTER_VALIDATE_URL 是否是正規(guī)的URL
三.凈化過濾 (比較多,我挑幾個比較屌的)
1、FILTER_SANITIZE_NUMBER_INT 過濾掉非數(shù)字型的內容。這個很屌哦
echo filter_var(‘fuck123’, FILTER_SANITIZE_NUMBER_INT); 直接返回123 ,你懂的
2、FILTER_SANITIZE_MAGIC_QUOTES 看列子
echo filter_var(“fuck’123”, FILTER_SANITIZE_MAGIC_QUOTES); 會輸出fuck\’123 .好比執(zhí)行了 addslashes()
3 、FILTER_SANITIZE_STRING 看例子
echo filter_var(“<fuck>123</fuck>”, FILTER_SANITIZE_STRING); 會輸出123
echo filter_var ( “fuck < 5 >6”, FILTER_SANITIZE_STRING); 會輸出fuck6 .注意,你如果用 echo strip_tags($str); 是過濾不掉的哦
這個函數(shù)還有第三個參數(shù)的,可以用來控制一些默認值的返回。請親自己動一下手
轉載來源:PHP中很屌但經(jīng)常被各種忽略的過濾器函數(shù) - 沈逸的個人站點