最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP內(nèi)置過濾器FILTER使用實例

 更新時間:2014年06月25日 09:27:53   投稿:junjie  
這篇文章主要介紹了PHP內(nèi)置過濾器FILTER使用實例,列舉了驗證功能和糾錯功能的代碼例子來講解如何使用FILTER,需要的朋友可以參考下

在這一章節(jié)里, 我們來了解一個不太常用但功能強大的 PHP 特性: FILTERS, 該擴展可以用來驗證(validation)和糾錯(sanitization)
 
當(dāng)數(shù)據(jù)源含有未知或不確定數(shù)據(jù)時,將變得非常有用, 最多是用來處理由客戶從 HTML 表單(form)提交的數(shù)據(jù)
 
該擴展含有兩個主要的過濾類型: 驗證(validation)和糾錯(sanitization)
 
驗證(validation)主要用來檢查數(shù)據(jù)是不是符合特定條件, 例如: 當(dāng)傳入 FILTER_VALIDATE_EMAIL 時, 它將檢查該郵件地址是否有效, 當(dāng)發(fā)現(xiàn)不符合規(guī)范時, 不會進行糾錯處理
 
糾錯(sanitization)將會對數(shù)據(jù)進行處理, 將不符合規(guī)范的字符進行轉(zhuǎn)換或移除, 例如: 當(dāng)傳入 FILTER_SANITIZE_EMAIL 時, 它將會處理郵件地址所包含不符合規(guī)范的字符, 但不會去檢查該郵件地址是否有效

詳細可見: http://in.php.net/manual/en/book.filter.php
提示: FILTER 在 PHP 5.2 版本中被加入

這里介紹一下驗證(validation) Filters

復(fù)制代碼 代碼如下:
FILTER_VALIDATE_BOOLEAN:  把值作為布爾選項來驗證,對 "1", "true", "on" 和 "yes" 返回 TRUE, 其余的都返回 FALSE
FILTER_VALIDATE_EMAIL:    把值作為郵件地址來驗證
FILTER_VALIDATE_FLOAT:    把值作為浮點數(shù)來驗證
FILTER_VALIDATE_INT:      以整數(shù)驗證值,可以選擇范圍
FILTER_VALIDATE_IP:       把值作為 IP 進行驗證
FILTER_VALIDATE_REGEXP:   根據(jù)兼容 Perl 的正則表達式來驗證值
FILTER_VALIDATE_URL:      把值作為 URL 進行驗證

范例:
 
驗證郵件地址(Email Address):
復(fù)制代碼 代碼如下:

<?php
$email_a = 'onedayin2013@shawn.com';
$email_b = 'invalid@email';
 
if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
    echo "This ($email_a) email address is valid.";
} else {
    echo "This ($email_a) email address is invalid.";
}
 
if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
    echo "This ($email_b) email address is valid.";
} else {
    echo "This ($email_b) email address is invalid.";
}
 
//輸出以下內(nèi)容:
This (onedayin2013@shawn.com) email address is valid.
This (invalid@email) email address is invalid.
?>

驗證 IP 地址:
復(fù)制代碼 代碼如下:
<?php
$ip_a = '127.0.0.1';
$ip_b = '52.69';
 
if (filter_var($ip_a, FILTER_VALIDATE_IP)) {
    echo "This ($ip_a) IP address is valid.";
}else{
    echo "This ($ip_a) IP address is invalid.";
}
if (filter_var($ip_b, FILTER_VALIDATE_IP)) {
    echo "This ($ip_b) IP address is valid.";
}else{
    echo "This ($ip_b) IP address is invalid.";
}
 
//輸出以下內(nèi)容:
This (127.0.0.1) IP address is valid.
This (52.69) IP address is invalid.
?>

糾錯(sanitization) Filters

復(fù)制代碼 代碼如下:
FILTER_SANITIZE_EMAIL:         移除所有字符, 除了字母,數(shù)字和 !#$%&'*+-/=?^_`{|}~@.[].
FILTER_SANITIZE_ENCODED:       去除 URL 編碼不需要的字符, 與 urlencode() 函數(shù)很類似
FILTER_SANITIZE_MAGIC_QUOTES:  在指定的預(yù)定義字符前添加反斜杠, 單引號(')、雙引號(")、反斜線(\)與 NULL
FILTER_SANITIZE_NUMBER_FLOAT:  移除所有字符, 除了數(shù)字,+- 和可選(.,)
FILTER_SANITIZE_NUMBER_INT:    移除所有字符, 除了數(shù)字和 +-
FILTER_SANITIZE_SPECIAL_CHARS: 用于對 "<>& 以及 ASCII 值在 32 值以下的字符進行轉(zhuǎn)義
FILTER_SANITIZE_STRING:        刪除那些對應(yīng)用程序有潛在危害的數(shù)據(jù)。它用于去除標(biāo)簽以及刪除或編碼不需要的字符
FILTER_SANITIZE_STRIPPED:      去除或編碼不需要的字符,是 FILTER_SANITIZE_STRING 的別名
FILTER_SANITIZE_URL:           移除所有字符, 除了字母,數(shù)字和 $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.
FILTER_UNSAFE_RAW:             不進行任何過濾,去除或編碼特殊字符


范例:

復(fù)制代碼 代碼如下:
<?php
$invalid_email = "(corrupted@foo dot com)";
 
if (!filter_var($invalid_email, FILTER_VALIDATE_EMAIL)) {
    $sanitized_email = filter_var($invalid_email, FILTER_SANITIZE_EMAIL);
    echo "This ($invalid_email) email address is invalid.";
    echo "Sanitized  Email is:  $sanitized_email";   
}
 
//輸出以下內(nèi)容:
This ((corrupted@foo dot com)) email address is invalid.
Sanitized  Email is:  corrupted@foo.com
?>

過濾 GET 和 POST 變量

復(fù)制代碼 代碼如下:
filter_input(input_type, variable, filter, options)
 
//函數(shù)從腳本外部獲取輸入,用于對來自非安全來源的變量進行驗證,比如用戶的輸入
//可以從以下來源獲取輸入
INPUT_GET  INPUT_POST  INPUT_COOKIE  INPUT_ENV  INPUT_SERVER

復(fù)制代碼 代碼如下:
input_type  規(guī)定輸入類型, 參見上面可能的類型
variable    規(guī)定要過濾的變量
filter      可選。規(guī)定要使用的過濾器的 ID。默認是 FILTER_SANITIZE_STRING。

范例:

復(fù)制代碼 代碼如下:
<?php
$search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);
$search_url  = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED);
 
echo "You have searched for $search_html.";
echo "<a href="sunzhenghua.com?search=$search_url">Search again.</a>";
?>

 

相關(guān)文章

  • php批量轉(zhuǎn)換文件夾下所有文件編碼的函數(shù)類

    php批量轉(zhuǎn)換文件夾下所有文件編碼的函數(shù)類

    分享一個php轉(zhuǎn)換文件夾下所有文件編碼函數(shù)類,適合發(fā)布網(wǎng)站的其他編碼版本,比如你有一個GBK版本 你想有一個UTF8版本 或者你只有GBK的源碼 你想二次開發(fā) 但是你不想改變IDE的編碼方式 你可以用這個程序?qū)⑵渑哭D(zhuǎn)化為UTF8
    2017-08-08
  • 自動分頁的不完整解決方案

    自動分頁的不完整解決方案

    自動分頁的不完整解決方案...
    2007-01-01
  • WIN8.1下搭建PHP5.6環(huán)境

    WIN8.1下搭建PHP5.6環(huán)境

    很多人喜歡用linux搭建php網(wǎng)頁語言運行環(huán)境,但由于linux高度自定義化,經(jīng)常需要root運行命令,略顯高端,相對應(yīng)的微軟的windows操作系統(tǒng),用戶體驗不錯,可以借助windows自帶的IIS組件+PHP程序包,搭建一個合適的運行環(huán)境。
    2015-04-04
  • 修復(fù)ShopNC使用QQ 互聯(lián)時提示100010 錯誤

    修復(fù)ShopNC使用QQ 互聯(lián)時提示100010 錯誤

    本文給大家介紹了修復(fù)ShopNC使用QQ 互聯(lián)時提示100010 錯誤的方法,以及QQ互聯(lián)里面的處理方法,有需要的小伙伴可以參考下
    2015-11-11
  • PHP 字符串分割和比較

    PHP 字符串分割和比較

    比較兩個字符串是否相等,最常見的方法就是使用“===”來判斷,至于它和“==”的區(qū)別,簡單來說就是前者強調(diào)“Identical”類型也要求一樣;后者要求“Equal”,值相同就可以了。
    2009-10-10
  • PHP讀取TXT文本內(nèi)容的五種實用方法小結(jié)

    PHP讀取TXT文本內(nèi)容的五種實用方法小結(jié)

    PHP作為一種流行的服務(wù)器端腳本語言,提供了多種方法來讀取TXT文本內(nèi)容,本文主要為大家詳細介紹五種不同的PHP方法,希望對大家有所幫助
    2024-01-01
  • PHP中OpenSSL加密問題整理

    PHP中OpenSSL加密問題整理

    本篇文章主要給大家講解了PHP中OpenSSL加密遇到的問題整理以及相關(guān)的處理辦法,一起參考學(xué)習(xí)下。
    2017-12-12
  • PHP+Mysql日期時間如何轉(zhuǎn)換(UNIX時間戳和格式化日期)

    PHP+Mysql日期時間如何轉(zhuǎn)換(UNIX時間戳和格式化日期)

    UNIX時間戳和格式化日期是我們常打交道的兩個時間表示形式,Unix時間戳存儲、處理方便,但是不直觀,格式化日期直觀,但是處理起來不如Unix時間戳那么自如,所以有的時候需要互相轉(zhuǎn)換,下面給出互相轉(zhuǎn)換的幾種轉(zhuǎn)換方式
    2012-07-07
  • PHP如何獲取Cookie并實現(xiàn)模擬登錄

    PHP如何獲取Cookie并實現(xiàn)模擬登錄

    這篇文章主要介紹了PHP如何獲取Cookie并實現(xiàn)模擬登錄,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • PHP設(shè)計模式之解釋器模式的深入解析

    PHP設(shè)計模式之解釋器模式的深入解析

    本篇文章是對PHP設(shè)計模式中的解釋器模式進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06

最新評論

德昌县| 隆德县| 肥城市| 海门市| 竹山县| 鹿邑县| 汉寿县| 监利县| 连江县| 淳安县| 明溪县| 浦东新区| 德格县| 威远县| 渝北区| 万年县| 闵行区| 靖州| 丁青县| 宜昌市| 呼和浩特市| 城固县| 海丰县| 宝应县| 康乐县| 靖安县| 新昌县| 时尚| 资兴市| 北京市| 方城县| 二手房| 湘阴县| 应用必备| 平果县| 灵武市| 新宁县| 汉中市| 肥城市| 江北区| 平阴县|