PHP filter_input() 函數

定義和用法

filter_input() 函數從腳本外部獲取輸入,並進行過濾。 php

本函數用於對來自非安全來源的變量進行驗證,好比用戶的輸入。 正則表達式

本函數可從各類來源獲取輸入: 數組

  • INPUT_GET
  • INPUT_POST
  • INPUT_COOKIE
  • INPUT_ENV
  • INPUT_SERVER
  • INPUT_SESSION (Not yet implemented)
  • INPUT_REQUEST (Not yet implemented)

若是成功,則返回被過濾的數據,若是失敗,則返回 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

PHP Filters

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 地址來驗證。
相關文章
相關標籤/搜索