過濾器(ZendFilter).ppt

上傳人:max****ui 文檔編號(hào):15570077 上傳時(shí)間:2020-08-21 格式:PPT 頁數(shù):16 大?。?90.86KB
收藏 版權(quán)申訴 舉報(bào) 下載
過濾器(ZendFilter).ppt_第1頁
第1頁 / 共16頁
過濾器(ZendFilter).ppt_第2頁
第2頁 / 共16頁
過濾器(ZendFilter).ppt_第3頁
第3頁 / 共16頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《過濾器(ZendFilter).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《過濾器(ZendFilter).ppt(16頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、第10章 過濾器(Zend_Filter),過濾器(Filter)是對(duì)輸入內(nèi)容進(jìn)行過濾,清除其中不符合過濾規(guī)則的內(nèi)容,并將其余內(nèi)容返回的過程。過濾器這一機(jī)制廣泛應(yīng)用于Web用戶互動(dòng)程序中,通過過濾器可以對(duì)用戶的輸入內(nèi)容進(jìn)行無害化處理。最常使用的就是清除指定內(nèi)容中的HTML代碼,或者其中的回車換行符等。Zend Framework也提供了對(duì)過濾器的支持,使用Zend_Filter組件即可實(shí)現(xiàn)過濾器的功能。本章來介紹Zend Framework中的Zend_Filter過濾器組件。,10.1 過濾器的使用方法,對(duì)引言中過濾器的基本定義進(jìn)行延伸,過濾器除了清除內(nèi)容之外還包括一般化的對(duì)輸入數(shù)據(jù)的轉(zhuǎn)化。

2、作為使用過濾器的第一步,本節(jié)先來介紹過濾器的通常使用方法。本節(jié)內(nèi)容包括如何使用單個(gè)過濾器與如何使用過濾器鏈。通過本節(jié)的介紹,讀者會(huì)對(duì)如何使用過濾器有一個(gè)深刻的認(rèn)識(shí)。,10.1.1 使用單個(gè)過濾器,Zend_Filter中有一個(gè)Zend_Filter_Interface子類,該子類為實(shí)現(xiàn)一般過濾器提供了接口。要實(shí)現(xiàn)過濾器類,需要實(shí)現(xiàn)該接口中一個(gè)名為filter()的方法。通過filter()方法過濾掉指定內(nèi)容中不需要的部分即可。 Zend_Filter中已經(jīng)事先定義了很多常用的過濾器子類。要使用這些過濾器,首先要加載相應(yīng)的組件,然后為類實(shí)例化對(duì)象,再調(diào)用對(duì)象的filter()方法即可。,,10.

3、1.2 使用過濾器鏈,過濾器除了單個(gè)使用之外,還可以將多個(gè)過濾器串連起來配合使用。過濾器鏈就是多個(gè)過濾器的一個(gè)連接。在對(duì)指定的內(nèi)容進(jìn)行過濾時(shí),每個(gè)過濾器將按照其順序分別進(jìn)行過濾或者轉(zhuǎn)化操作。當(dāng)所有的過濾操作都被進(jìn)行完時(shí),過濾器鏈返回最終的過濾結(jié)果。 過濾器鏈與單一的過濾器一樣,也可以執(zhí)行Filter()方法,調(diào)用此方法即可對(duì)指定數(shù)據(jù)進(jìn)行多重過濾或者轉(zhuǎn)化操作。,10.2 常用的預(yù)定義過濾器,名稱過濾內(nèi)容Alnum所有非字母或數(shù)字的內(nèi)容Alpha所有非字母的內(nèi)容BaseName給定路徑所有非文件名部分Digits所有非數(shù)值的內(nèi)容Dir給定路徑所有非目錄部分HtmlEntities替換HTML標(biāo)記符

4、:“”Input(該過濾器較為特殊,將在10.3小節(jié)詳細(xì)介紹)Int非整數(shù)的內(nèi)容RealPath所有非規(guī)范化的絕對(duì)路徑名StringToLower字母全部轉(zhuǎn)換為小寫StringToUpper字母全部轉(zhuǎn)換為大寫StringTrim字符串首尾的空格StripTags去除字符串的HTML內(nèi)容表10.1中的Alpha、StringToLower、StringToUpper過濾器在前兩節(jié)介紹實(shí)例中已經(jīng)做了介紹。本節(jié)將重點(diǎn)介紹剩余的Alnum、HtmlEntities、Int與StripTags過濾器。另外,Input過濾器比較特殊,將在本章10.3節(jié)中詳細(xì)介紹。除此之外的過濾器使用都非常簡(jiǎn)單,這里不再贅

5、述。,10.2.1 Alnum字母或數(shù)值過濾器,使用Zend_Filter_Alnum過濾器可以對(duì)給定內(nèi)容中的非數(shù)字也非字母的內(nèi)容進(jìn)行過濾。通過該過濾器的Filter()方法,將返回純數(shù)字與字母的內(nèi)容,除此之外的其他內(nèi)容都將被過濾。該過濾器可以看作是過濾器Zend_Filter_Alpha(過濾非字母)與Zend_Filter_Digits(過濾非數(shù)值)的并集。,,10.2.2 HtmlEntities HTML過濾器,Zend_Filter_HtmlEntities過濾器可以對(duì)給定內(nèi)容中的HTML代碼進(jìn)行過濾。該過濾器是對(duì)PHP函數(shù):htmlentities()進(jìn)行了封裝,所以通過此過濾器的

6、HTML內(nèi)容都將被過濾掉。,,10.2.3 Int整型數(shù)過濾器,Zend_Filter過濾器中的Int過濾器可以對(duì)指定的數(shù)值進(jìn)行整型轉(zhuǎn)換,即將非整部分過濾掉。該過濾器對(duì)要求輸入的內(nèi)容僅為整數(shù)時(shí)就非常有用。,,10.2.4 StripTags HTML字符過濾器,Zend_Filter_StripTags過濾器的作用是將字符串中的HTML內(nèi)容進(jìn)行刪除。該過濾器與Zend_Filter_HtmlEntities過濾器不同,后者只是將“”符號(hào)進(jìn)行轉(zhuǎn)換。而Zend_Filter_StripTags過濾器則是直接過濾掉被“”符號(hào)所包括的內(nèi)容。,,10.3 Zend_Filter_Input過濾器,在所有

7、的預(yù)定義過濾器中,Zend_Filter_Input是最為特殊的一類過濾器。該過濾器的使用方法與其他過濾器的使用方法有很大不同,該過濾器專門用于實(shí)現(xiàn)對(duì)互動(dòng)程序中用戶輸入數(shù)據(jù)的過濾。要實(shí)現(xiàn)該過濾器通常要分以下幾步: 定義過濾與校驗(yàn)規(guī)則。 創(chuàng)建過濾與校驗(yàn)處理器。 檢索處理后的字段與其他報(bào)告內(nèi)容。 本節(jié)就按照上述使用順序來詳細(xì)介紹如何使用Zend_Filter_Input進(jìn)行過濾操作。其中提到了關(guān)于校驗(yàn)器的知識(shí),關(guān)于這部分內(nèi)容將在本書第派遣11章詳細(xì)介紹。,10.3.1 定義過濾與校驗(yàn)規(guī)則,在創(chuàng)建一個(gè)Zend_Filter_Input類的實(shí)例之前,需要為該過濾器分別創(chuàng)建過濾規(guī)則與校驗(yàn)規(guī)則數(shù)組。其中兩

8、個(gè)數(shù)組的鍵與值,為需要獲取前臺(tái)表單的表單項(xiàng)名稱,與相應(yīng)對(duì)其進(jìn)行處理的子類名稱。 如對(duì)用戶輸入的用戶名進(jìn)行小寫轉(zhuǎn)換(StringToLower),對(duì)用戶輸入的年齡進(jìn)行非數(shù)值過濾(Digits)。另外,還需要對(duì)用戶進(jìn)行是否為字母的校驗(yàn)。,,,10.3.2 創(chuàng)建Input過濾器,在定義完過濾與校驗(yàn)規(guī)則之后,就可以創(chuàng)建Zend_Filter_Input過濾器了。該創(chuàng)建過程只需要為Zend_Filter_Input類使用new關(guān)鍵字實(shí)例化對(duì)象即可。在實(shí)例化對(duì)象時(shí)需要指明所定義的過濾與校驗(yàn)規(guī)則。,10.3.3 檢索處理后的字段與其他內(nèi)容,在定義了Zend_Filter_Input過濾器之后,就可以通過多種

9、方法來獲取其中的各項(xiàng)內(nèi)容。其中包括無效內(nèi)容(Invalid)、丟失的內(nèi)容(Missing)和未知的內(nèi)容(Unknown)等。當(dāng)然最重要的還是返回經(jīng)過處理之后的內(nèi)容。,10.3.4 實(shí)戰(zhàn)Zend_Filter_Input,前面三節(jié)為讀者介紹了使用Zend_Filter_Input過濾器的過程。本節(jié)通過一個(gè)可執(zhí)行的實(shí)例來實(shí)際應(yīng)用一下此過濾器。,10.4 創(chuàng)建自定義過濾器,通過對(duì)10.2節(jié)中的常用預(yù)定義過濾器的學(xué)習(xí)可以發(fā)現(xiàn),Zend_Filter組件中已經(jīng)預(yù)定義了很多常用的過濾器。但是僅憑這些系統(tǒng)預(yù)定義過濾器有時(shí)并不能完全滿足實(shí)際編程環(huán)境的需要。此時(shí),用戶可以通過自定義過濾器來滿足自己更多的需要。Z

10、end_Filter支持自定義過濾器。本節(jié)就來介紹如何實(shí)現(xiàn)自定義過濾器。 要編寫自定義過濾器,需要定義一個(gè)類,并引用Zend_Filter_Interface接口。該接口定義了filter()方法,這個(gè)方法可以在用戶的類里被實(shí)現(xiàn)。用Zend_Filter::addFilter()可以把一個(gè)實(shí)現(xiàn)這個(gè)接口的對(duì)象添加到過濾器鏈。,10.5 小結(jié),本章介紹了Zend Framework中的過濾器組件。使用Zend_Filter可以有效過濾用戶的輸入數(shù)據(jù),這種機(jī)制廣泛應(yīng)用于互動(dòng)網(wǎng)絡(luò)應(yīng)用程序中。使用過濾器過濾掉或者轉(zhuǎn)化用戶所輸入內(nèi)容中的不合規(guī)則成份,一方面可以減輕程序?qū)o用數(shù)據(jù)進(jìn)行不必要的處理。另一方面也可以在某種程度上提高程序的安全性。,

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔

相關(guān)搜索

關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!