PHP中很屌但經常被各種忽略的過濾器函式

weixin_34247155發表於2018-09-12

PHP有些函式被各種小夥伴用爛了。但是也有一些好函式經常被忽略,以至於有些功能其實PHP內建函式都能解決,而我們小夥伴依然會通過各種稀奇古怪的方法來繞彎走。這裡我們說的最常見的就是過濾。

我寫兩個出來,大家體驗一下。

一、filter_has_var 函式

譬如你還在用 if(isset($_GET[“name”]) 來判斷GET引數 中有name這個引數嗎? 或者post引數、或者cookie裡

filter_has_var(INPUT_GET, ‘name’) 可以直接返回true或false

第一個引數 可以填 INPUT_GET、 INPUT_POST、 INPUT_COOKIE、 INPUT_SERVER、 INPUT_ENV
看英文你應該知道 是幹啥的
二、filter_var 函式

你還在辛辛苦苦的用正則等方式 來驗證 字串是否為email格式嗎?

echo filter_var(‘shenyi@hishenyi.com, FILTER_VALIDATE_EMAIL);
如果OK 會返回原值,如果不OK 則返回false

第二個引數有哪些?

驗證為主:

1、FILTER_VALIDATE_BOOLEAN .當第一個引數是”1″, “true”, “on” and “yes” 這些字串時會返回true .否則為false 。所以當使用者輸入一些 類似布林型別的值時,你就無需一個個去寫if else了。這個引數幫你搞定自動轉換

2、FILTER_VALIDATE_EMAIL 你懂得 ,上面已經演示過了。自己想

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 是否是正規的URL

三.淨化過濾 (比較多,我挑幾個比較屌的)

1、FILTER_SANITIZE_NUMBER_INT 過濾掉非數字型的內容。這個很屌哦

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 .好比執行了 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); 是過濾不掉的哦
這個函式還有第三個引數的,可以用來控制一些預設值的返回。請親自己動一下手

轉載來源:PHP中很屌但經常被各種忽略的過濾器函式 - 沈逸的個人站點

相關文章