PHP 过滤器(Filter)
簡介
PHP 過濾器用于驗證和過濾來自非安全來源的數據。驗證和過濾用戶輸入或自定義數據是任何 Web 應用程序的重要組成部分。設計 PHP 的過濾器擴展的目的是使數據過濾更輕松快捷。
由于大部分Web應用程序都依賴于外部數據的輸入,這些數據的來源包括:
- 來自表單的輸入數據
- Cookies
- 服務器變量
- 數據庫查詢結果
通過使用過濾器,您能夠確保應有程序獲得正確的輸入類型。
過濾函數
對于需要過濾的變量,使用下列函數:
| filter_has_var() | 檢查是否存在指定輸入類型的變量。 | 5 |
| filter_id() | 返回指定過濾器的 ID 號。 | 5 |
| filter_input() | 從腳本外部獲取輸入,并進行過濾。 | 5 |
| filter_input_array() | 從腳本外部獲取多項輸入,并進行過濾。 | 5 |
| filter_list() | 返回包含所有得到支持的過濾器的一個數組。 | 5 |
| filter_var_array() | 獲取多項變量,并進行過濾。 | 5 |
| filter_var() | 獲取一個變量,并進行過濾。 | 5 |
PHP:指示支持該函數的最早的 PHP 版本。
過濾器
FILTER_CALLBACK
調用用戶自定義函數來過濾數據。把自定義的函數作為一個過濾器來使用。這樣,就擁有了數據過濾的完全控制權。指定的函數必須存入名為 “options” 的關聯數組中。
注意:既可以創建自己的自定義函數,也可以使用已有的 PHP 函數。規定準備用到過濾器函數的方法,與規定選項的方法相同。
在下面的例子中,使用了一個自定義的函數把所有 “_“ 轉換為空格:
| 1 2 3 4 5 6 7 8 | <?php function convertSpace($string) { return str_replace("_", " ", $string); } $string = "Peter_is_a_great_guy!"; echo filter_var($string, FILTER_CALLBACK, array("options"=>"convertSpace")); ?> // 結果:Peter is a great guy! |
validating過濾器
作用:
- 用于驗證用戶輸入。
- 嚴格的格式規則。(比如 URL 或 E-Mail 驗證)
- 如果成功則返回預期的類型,失敗則返回 false。
效果:Validation 用于校驗數據。例如,在filter_var($variable)中傳入FILTER_VALIDATE_EMAIL,會校驗$variable是否為合法的email地址。
返回結果:校驗通過返回數據,校驗失敗返回false。
| 1 2 3 4 5 6 7 8 | <?php $var=300; $int_options = array("options"=> array("min_range"=>0, "max_range"=>256)); var_dump(filter_var($var, FILTER_VALIDATE_INT, $int_options)); ?> |
sanitizing過濾器
作用:
- 用于允許或禁止字符串中指定的字符。
- 無數據格式規則。
- 始終返回字符串。
效果:Sanitization 用于修正數據,不校驗數據。例如,在filter_var($variable)中傳入FILTER_SANITIZE_EMAIL,$variable變量中不符合email地址規則的字符將會被修剪。
返回結果:返回修正后的數據,無論修正是否起作用。
示例:
| 1 2 3 4 | <?php $url="http://www.w3school.com.cn"; var_dump(filter_var($url,FILTER_SANITIZE_ENCODED)); ?> |
總結
以上是生活随笔為你收集整理的PHP 过滤器(Filter)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如果人民币贬值,对股市会有什么影响?
- 下一篇: PHP(一)——概述及服务器配置