原文:
PHP函數(shù)參考30-Filter過濾器擴展函數(shù) - 9ong
PHP函數(shù)參考31-Reflection反射 - 9ong
Filter介紹
該Filter擴展通過驗證或清理數(shù)據(jù)來篩選數(shù)據(jù)。當數(shù)據(jù)源包含未知(或外部)數(shù)據(jù)(如用戶提供的輸入)時,這特別有用。例如,該數(shù)據(jù)可能來自HTML表單。
過濾主要有兩種:驗證和清洗。
驗證是用來驗證或檢查數(shù)據(jù)是否滿足某些條件。例如,傳入FILTER_VALIDATE_EMAIL將確定數(shù)據(jù)是否是有效的電子郵件地址,但不會改變數(shù)據(jù)本身。
清洗會對數(shù)據(jù)進行清洗,因此它可以通過刪除不需要的字符來改變數(shù)據(jù)。例如,傳入filter_sanitie_email將刪除不適合電子郵件地址包含的字符。也就是說,它不能驗證數(shù)據(jù)。
Filter函數(shù)
-
filter_list — 返回所支持的過濾器列表
Array ( [0] => int [1] => boolean [2] => float [3] => validate_regexp [4] => validate_domain [5] => validate_url [6] => validate_email [7] => validate_ip [8] => validate_mac [9] => string [10] => stripped [11] => encoded [12] => special_chars [13] => full_special_chars [14] => unsafe_raw [15] => email [16] => url [17] => number_int [18] => number_float [19] => magic_quotes [20] => callback ) filter_id — 返回與某個特定名稱的過濾器相關聯(lián)的id
-
filter_has_var — 檢測是否存在指定類型的變量
檢查這些輸入:INPUT_GET、 INPUT_POST、 INPUT_COOKIE、 INPUT_SERVER、 INPUT_ENV 里的其中一個的變量。
var_dump(filter_has_var(INPUT_GET, "name")); -
filter_var — 使用特定的過濾器過濾一個變量
filter_var( mixed $variable[, int $filter = FILTER_DEFAULT[, mixed $options]] ) : mixed-
variable
待過濾變量
-
filter
-
options
過濾器選項。就是過濾規(guī)則設置。主要由 Validate filters options 與 Filter flags 設置過濾規(guī)則。
-
-
filter_var_array — 獲取多個變量并且過濾它們
不需要重復調用 filter_var() 就能獲取多個變量。
filter_var數(shù)組形式,輸入變量數(shù)組,通過過濾器數(shù)組進行相應變量的過濾得到新的變量數(shù)組。
現(xiàn)代web框架都有封裝各自的類似機制的filter過濾器。
error_reporting(E_ALL | E_STRICT); $data = array( 'product_id' => 'libgd<script>', 'component' => '10', 'versions' => '2.0.33', 'testscalar' => array('2', '23', '10', '12'), 'testarray' => '2', ); $args = array( 'product_id' => FILTER_SANITIZE_ENCODED, 'component' => array('filter' => FILTER_VALIDATE_INT, 'flags' => FILTER_FORCE_ARRAY, 'options' => array('min_range' => 1, 'max_range' => 10) ), 'versions' => FILTER_SANITIZE_ENCODED, 'doesnotexist' => FILTER_VALIDATE_INT, 'testscalar' => array( 'filter' => FILTER_VALIDATE_INT, 'flags' => FILTER_REQUIRE_SCALAR, ), 'testarray' => array( 'filter' => FILTER_VALIDATE_INT, 'flags' => FILTER_FORCE_ARRAY, ) ); $myinputs = filter_var_array($data, $args); var_dump($myinputs); echo "\n";
-
filter_input — 通過名稱獲取特定的外部變量,并且可以通過過濾器處理它
filter_input( int $type, string $variable_name[, int $filter = FILTER_DEFAULT[, mixed $options]] ) : mixed除了待檢查變量從INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER或 INPUT_ENV之一中獲取外,其他的過濾器、過濾規(guī)則都和filter_var一樣。
-
filter_input_array — 獲取一系列外部變量,并且可以通過過濾器處理它們
這個函數(shù)當需要獲取很多變量卻不想重復調用filter_input()時很有用。
Filter過濾器類型
PHP: Types of filters - Manual
原文:
PHP函數(shù)參考30-Filter過濾器擴展函數(shù) - 9ong
PHP函數(shù)參考31-Reflection反射 - 9ong