search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

[PHP]filter

filter是PHP內建用來過濾和驗證字串

php filter有許多函式,以下列幾個較常用的
php filter函式:

函式 功用
filter_list 列出所有支援的filters
filter_has_var 檢查變數是已經存在(類似isset)
filter_input 針對外部(GET、POST等等)輸入進行過濾
filter_input_array 針對陣列過濾,功能和filter_input相同
filter_var 針對變數過濾
filter_var_array 針對陣列過濾,功能和filter_var相同

另外每個filter函式參數裡可以再設定filter類型和filter option(更細部的條件)

常用的filter類型:

名稱 功用
FILTER_CALLBACK option可以讓開發者用自訂的function處理
FILTER_SANITIZE_STRING 去除標籤或特殊字元(html標籤會直接被消除)
FILTER_SANITIZE_ENCODED 與urlencode()相同,過濾特殊字串
FILTER_SANITIZE_MAGIC_QUOTES 過濾針對SQL injection做過濾(例如單、雙引號)
FILTER_SANITIZE_SPECIAL_CHARS 針對HTML做encoding,例如<
FILTER_SANITIZE_EMAIL 過濾e-mail,刪除e-mail格式不該出現的字元(除了$-_.+!*'{}|^~[]`#%/?@&=和數字),例如a(b)@gmail.com會被過濾成[email protected]
FILTER_SANITIZE_URL 過濾URL,刪除URL格式不該出現的字元
FILTER_SANITIZE_NUMBER_INT 刪除所有字元,只留下數字與+-符號
FILTER_SANITIZE_NUMBER_FLOAT 刪除所有字元,只留下數字和+-.,eE
FILTER_VALIDATE_INT 判斷數字是否有在範圍內
FILTER_VALIDATE_BOOLEAN 判斷布林值,1、true、on、yes都會判斷成true,反之為false,若是這些以外的值會回傳NULL
FILTER_VALIDATE_FLOAT 判斷是否為浮點數
FILTER_VALIDATE_REGEXP 利用regexp做驗證
FILTER_VALIDATE_URL URL驗證
FILTER_VALIDATE_EMAIL e-mail驗證
FILTER_VALIDATE_IP IP驗證

搭配各個filter類型的細部filter option連結

另外為了讓操作方便,filter有特別針對幾個外部輸入($_GET或$_POST)設定成type參數
filter type:

  • INPUT_GET
  • INPUT_POST
  • INPUT_COOKIE
  • INPUT_SERVER
  • INPUT_ENV

Example:
1.列出所有支援的filters


2.確定$_GET[test]變數是否存在
filter_has_var(type, variable_name)


3.將$_GET[test]變數內的字串做HTML encoding,並去除ASCII碼在32以下(如空白)的字元
filter_input(type, variable_name, filter, options)


4.一次過濾(不同條件)整個$_GET陣列
filter_input_array(type, definition)

&component=10&versions=2.0.33
	$_GET = array(
		'product_id'    => 'libgd


熱門推薦

本文由 blogjohnsonluorg 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦