當(dāng)數(shù)據(jù)源含有未知或不確定數(shù)據(jù)時(shí),將變得非常有用, 最多是用來(lái)處理由客戶從 HTML 表單(for " /> 成人在线午夜,成人ab片,一级特黄a 大片免费

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

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

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

詳細(xì)可見: http://in.php.NET/manual/en/book.filter.php
提示: FILTER 在 php 5.2 版本中被加入

這里介紹一下驗(yàn)證(validation) Filters
復(fù)制代碼 代碼如下:FILTER_VALIDATE_BOOLEAN:  把值作為布爾選項(xiàng)來(lái)驗(yàn)證,對(duì) "1", "true", "on" 和 "yes" 返回 TRUE, 其余的都返回 FALSE
FILTER_VALIDATE_EMAIL:    把值作為郵件地址來(lái)驗(yàn)證
FILTER_VALIDATE_FLOAT:    把值作為浮點(diǎn)數(shù)來(lái)驗(yàn)證
FILTER_VALIDATE_INT:      以整數(shù)驗(yàn)證值,可以選擇范圍
FILTER_VALIDATE_IP:       把值作為 IP 進(jìn)行驗(yàn)證
FILTER_VALIDATE_REGEXP:   根據(jù)兼容 Perl 的正則表達(dá)式來(lái)驗(yàn)證值
FILTER_VALIDATE_URL:      把值作為 URL 進(jìn)行驗(yàn)證
范例:
 
驗(yàn)證郵件地址(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.
?>
驗(yàn)證 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.
?>

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


范例:
復(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
?>

過(guò)濾 GET 和 POST 變量
復(fù)制代碼 代碼如下:filter_input(input_type, variable, filter, options)
 
//函數(shù)從腳本外部獲取輸入,用于對(duì)來(lái)自非安全來(lái)源的變量進(jìn)行驗(yàn)證,比如用戶的輸入
//可以從以下來(lái)源獲取輸入
INPUT_GET  INPUT_POST  INPUT_COOKIE  INPUT_ENV  INPUT_SERVER
復(fù)制代碼 代碼如下:input_type  規(guī)定輸入類型, 參見上面可能的類型
variable    規(guī)定要過(guò)濾的變量
filter      可選。規(guī)定要使用的過(guò)濾器的 ID。默認(rèn)是 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>";
?>
 

php技術(shù)PHP內(nèi)置過(guò)濾器FILTER使用實(shí)例,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 真实国产普通话对白乱子子伦视频 | 亚洲视频二区 | 伊人青青草 | 国产视频中文字幕 | 好吊日在线观看 | 欧美一区二区激情视频 | 五月天激情社区 | 国产精品制服诱惑 | 国产精品视频网址 | 在线观看91精品国产剧情免费 | 看全色黄大色黄女片做 | 国产美女无遮挡免费视频 | 亚洲精品成人久久久影院 | 福利成人 | 中文字幕一区二区在线观看 | 99热成人精品国产免国语的 | 在线看一区 | 五月天激情久久综合一区 | 久久黄色大片 | 女人被爽到呻吟娇喘的视频动态图 | 色噜噜狠狠狠综合曰曰曰88av | 在线观看免费午夜大片 | 91av福利视频 | 五月婷婷六月丁香激情 | 国产成人黄网址在线视频 | 最新亚洲精品国自产在线 | 国产黄大片 | 日本成人一区二区三区 | 久久亚洲精品国产精品婷婷 | av中文字幕在线 | 97久久精品视频 | 国产激爽大片在线播放 | 成人国产在线24小时播放视频 | 国产日韩欧美不卡www | 欧美日韩国产另类一区二区三区 | 国产男女视频在线观看 | 精品国产网 | 97午夜理伦影院在线观看 | 婷婷色九月综合激情丁香 | 欧美亚洲高清日韩成人 | 日韩精品免费一区二区三区 |