filter_input() 函數從腳本外部獲取輸入,並進行過濾。 php
本函數用於對來自非安全來源的變量進行驗證,好比用戶的輸入。 正則表達式
本函數可從各類來源獲取輸入: 數組
若是成功,則返回被過濾的數據,若是失敗,則返回 false,若是 variable 參數未設置,則返回 NULL。 安全
filter_input(input_type, variable, filter, options)
參數 | 描述 |
---|---|
input_type | 必需。規定輸入類型。參見上面的列表中可能的類型。 |
variable | 規定要過濾的變量。 |
filter | 可選。規定要使用的過濾器的 ID。默認是 FILTER_SANITIZE_STRING。 函數 請參見完整的 PHP Filter 函數參考手冊,得到可能的過濾器。 編碼 過濾器 ID 能夠是 ID 名稱 (好比 FILTER_VALIDATE_EMAIL),或 ID 號(好比 274)。 url |
options | 規定包含標誌/選項的數組。檢查每一個過濾器可能的標誌和選項。 |
在本例中,咱們使用 filter_input() 函數來過濾一個 POST 變量。所接受的 POST 變量是合法的 e-mail 地址。 code
<?php if (!filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL)) { echo "E-Mail is not valid"; } else { echo "E-Mail is valid"; } ?>
輸出相似: regexp
E-Mail is valid
ID 名稱 | 描述 |
---|---|
FILTER_CALLBACK | 調用用戶自定義函數來過濾數據。 |
FILTER_SANITIZE_STRING | 去除標籤,去除或編碼特殊字符。 |
FILTER_SANITIZE_STRIPPED | "string" 過濾器的別名。 |
FILTER_SANITIZE_ENCODED | URL-encode 字符串,去除或編碼特殊字符。 |
FILTER_SANITIZE_SPECIAL_CHARS | HTML 轉義字符 '"<>& 以及 ASCII 值小於 32 的字符。 |
FILTER_SANITIZE_EMAIL | 刪除全部字符,除了字母、數字以及 !#$%&'*+-/=?^_`{|}~@.[] |
FILTER_SANITIZE_URL | 刪除全部字符,除了字母、數字以及 $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&= |
FILTER_SANITIZE_NUMBER_INT | 刪除全部字符,除了數字和 +- |
FILTER_SANITIZE_NUMBER_FLOAT | 刪除全部字符,除了數字、+- 以及 .,eE。 |
FILTER_SANITIZE_MAGIC_QUOTES | 應用 addslashes()。 |
FILTER_UNSAFE_RAW | 不進行任何過濾,去除或編碼特殊字符。 |
FILTER_VALIDATE_INT | 在指定的範圍以整數驗證值。 |
FILTER_VALIDATE_BOOLEAN | 若是是 "1", "true", "on" 以及 "yes",則返回 true,若是是 "0", "false", "off", "no" 以及 "",則返回 false。不然返回 NULL。 |
FILTER_VALIDATE_FLOAT | 以浮點數驗證值。 |
FILTER_VALIDATE_REGEXP | 根據 regexp,兼容 Perl 的正則表達式來驗證值。 |
FILTER_VALIDATE_URL | 把值做爲 URL 來驗證。 |
FILTER_VALIDATE_EMAIL | 把值做爲 e-mail 來驗證。 |
FILTER_VALIDATE_IP | 把值做爲 IP 地址來驗證。 |