Zi 字媒體
2017-07-25T20:27:27+00:00
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會被過濾成ab@gmail.com
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)
5.針對變數(值)判斷是否為URL
filter_var(variable, filter, options)
6.一次過濾(不同條件)整個$data陣列
filter_var_array(type, definition)
7.一次過濾(相同條件)整個$data陣列
filter_var_array(type, definition)
8.FILTER_CALLBACK範例
Categories: PHP
分類
Android
AngularJS
API Blueprint
Chrome
Database
MySQL
DataStructure
Editor
Vim
Firefox
Git
Hadoop
Language
Go
Java
JavaScript
jQuery
jQueryChart
Node.js
Vue
PHP
Laravel
ZendFramework
Python
Mac
Network
Cisco
DLink
Juniper
Oauth
Server
Apache
Share
Unix
FreeBSD
Linux
WebDesign
Bootstrap
CSS
HTML
Wordpress
Search
搜尋:
寫了
5860316篇文章,獲得
23313次喜歡