PHP filter_var() 函數 Filter 函數使用詳解

來源:互聯網
上載者:User
php 裡面 filter 函數是一個函數系列的統稱,filter 系列函數裡麵包括 filter_var 函數。filter 系列函數是 PHP 核心的組成部分。無需安裝即可使用這些函數。

他主要用於對來自非安全來源的資料(比如使用者輸入)進行驗證和過濾。而這裡面 filter_var() 函數則主要是通過指定的過濾器來過濾變數。

filter_has_var()檢查是否存在指定輸入類型的變數。

filter_id()返回指定過濾器的 識別碼。

filter_input()從指令碼外部擷取輸入,並進行過濾。

filter_input_array()從指令碼外部擷取多項輸入,並進行過濾。

filter_list()返回包含所有得到支援的過濾器的一個數組。

filter_var_array()擷取多項變數,並進行過濾。

filter_var()擷取一個變數,並進行過濾。

下面主要來看看 filter_var 函數的定義和用法。filter_var() 函數作用是通過指定的過濾器過濾變數。如果成功,則返回已過濾的資料,如果失敗,則返回 false。文法filter_var(variable, filter, options)參數 描述variable 必需。規定要過濾的變數。

filter 可選。規定要使用的過濾器的 ID。
options 規定包含標誌/選項的數組。檢查每個過濾器可能的標誌和選項。

至於使用什麼過濾器,可參見完整的 PHP Filter 參考手冊,查看可與該函數一同使用的過濾器:http://cn2.php.net/manual/zh/filter.filters.validate.php中文的解釋如下:

FiltersID 名稱及描述

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 的Regex來驗證值。

FILTER_VALIDATE_URL:把值作為 URL 來驗證。

FILTER_VALIDATE_EMAIL:把值作為 e-mail 來驗證。

FILTER_VALIDATE_IP:把值作為 IP 位址來驗證。

下面是一個使用驗證Email的過濾器的樣本:

//利用php filter_var 函數來檢驗電子郵件地址的正確性
if(!filter_var("someone@example....com",FILTER_VALIDATE_EMAIL)){
echo("不正確的Email");
}else{
echo("正確的Email");

}

以上結果將輸出:

不正確的Email

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.