过滤器(ZendFilter).ppt_第1页
过滤器(ZendFilter).ppt_第2页
过滤器(ZendFilter).ppt_第3页
过滤器(ZendFilter).ppt_第4页
过滤器(ZendFilter).ppt_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第10章 过滤器(Zend_Filter) 过滤器(Filter)是对输入内容进行过滤,清除其中不 符合过滤规则的内容,并将其余内容返回的过程。过滤器这 一机制广泛应用于Web用户互动程序中,通过过滤器可以对 用户的输入内容进行无害化处理。最常使用的就是清除指定 内容中的HTML代码,或者其中的回车换行符等。Zend Framework也提供了对过滤器的支持,使用Zend_Filter组件 即可实现过滤器的功能。本章来介绍Zend Framework中的 Zend_Filter过滤器组件。 10.1 过滤器的使用方法 对引言中过滤器的基本定义进行延伸,过滤器除了清除 内容之外还包括一般化的对输入数据的转化。作为使用过滤 器的第一步,本节先来介绍过滤器的通常使用方法。本节内 容包括如何使用单个过滤器与如何使用过滤器链。通过本节 的介绍,读者会对如何使用过滤器有一个深刻的认识。 10.1.1 使用单个过滤器 Zend_Filter中有一个Zend_Filter_Interface子类,该子 类为实现一般过滤器提供了接口。要实现过滤器类,需要实 现该接口中一个名为filter()的方法。通过filter()方法过滤掉 指定内容中不需要的部分即可。 Zend_Filter中已经事先定义了很多常用的过滤器子类 。要使用这些过滤器,首先要加载相应的组件,然后为类实 例化对象,再调用对象的filter()方法即可。 10.1.2 使用过滤器链 过滤器除了单个使用之外,还可以将多个过滤器串连起 来配合使用。过滤器链就是多个过滤器的一个连接。在对指 定的内容进行过滤时,每个过滤器将按照其顺序分别进行过 滤或者转化操作。当所有的过滤操作都被进行完时,过滤器 链返回最终的过滤结果。 过滤器链与单一的过滤器一样,也可以执行Filter()方 法,调用此方法即可对指定数据进行多重过滤或者转化操作 。 10.2 常用的预定义过滤器 名称 过滤内容Alnum 所有非字母或数字的内容 Alpha 所有非字母的内容BaseName 给定路径所有非文件 名部分 Digits 所有非数值的内容Dir给定路径所有非目录 部分 HtmlEntities 替换HTML标记符:“” Input( 该过滤器较为特殊,将在10.3小节详细介绍) Int 非整数的 内容 RealPath所有非规范化的绝对路径名 StringToLower 字母全部转换为小写StringToUpper字母全部转换为大写 StringTrim字符串首尾的空格StripTags 去除字符串的 HTML内容 表10.1中的Alpha、StringToLower、 StringToUpper过滤器在前两节介绍实例中已经做了介绍。 本节将重点介绍剩余的Alnum、HtmlEntities、Int与 StripTags过滤器。另外,Input过滤器比较特殊,将在本章 10.3节中详细介绍。除此之外的过滤器使用都非常简单,这 里不再赘述。 10.2.1 Alnum字母或数值过滤器 使用Zend_Filter_Alnum过滤器可以对给定内容中的非 数字也非字母的内容进行过滤。通过该过滤器的Filter()方法 ,将返回纯数字与字母的内容,除此之外的其他内容都将被 过滤。该过滤器可以看作是过滤器Zend_Filter_Alpha(过滤 非字母)与Zend_Filter_Digits(过滤非数值)的并集。 10.2.2 HtmlEntities HTML过滤器 Zend_Filter_HtmlEntities过滤器可以对给定内容中的 HTML代码进行过滤。该过滤器是对PHP函数: htmlentities()进行了封装,所以通过此过滤器的HTML内容 都将被过滤掉。 10.2.3 Int整型数过滤器 Zend_Filter过滤器中的Int过滤器可以对指定的数值进 行整型转换,即将非整部分过滤掉。该过滤器对要求输入的 内容仅为整数时就非常有用。 10.2.4 StripTags HTML字符过滤器 Zend_Filter_StripTags过滤器的作用是将字符串中的 HTML内容进行删除。该过滤器与Zend_Filter_HtmlEntities 过滤器不同,后者只是将“”符号进行转换。而 Zend_Filter_StripTags过滤器则是直接过滤掉被“”符号所 包括的内容。 10.3 Zend_Filter_Input过滤器 在所有的预定义过滤器中,Zend_Filter_Input是最为特 殊的一类过滤器。该过滤器的使用方法与其他过滤器的使用 方法有很大不同,该过滤器专门用于实现对互动程序中用户 输入数据的过滤。要实现该过滤器通常要分以下几步: 定义过滤与校验规则。 创建过滤与校验处理器。 检索处理后的字段与其他报告内容。 本节就按照上述使用顺序来详细介绍如何使用 Zend_Filter_Input进行过滤操作。其中提到了关于校验器的 知识,关于这部分内容将在本书第派遣11章详细介绍。 10.3.1 定义过滤与校验规则 在创建一个Zend_Filter_Input类的实例之前,需要为该 过滤器分别创建过滤规则与校验规则数组。其中两个数组的 键与值,为需要获取前台表单的表单项名称,与相应对其进 行处理的子类名称。 如对用户输入的用户名进行小写转换(StringToLower ),对用户输入的年龄进行非数值过滤(Digits)。另外, 还需要对用户进行是否为字母的校验。 10.3.2 创建Input过滤器 在定义完过滤与校验规则之后,就可以创建 Zend_Filter_Input过滤器了。该创建过程只需要为 Zend_Filter_Input类使用new关键字实例化对象即可。在实 例化对象时需要指明所定义的过滤与校验规则。 10.3.3 检索处理后的字段与其他内容 在定义了Zend_Filter_Input过滤器之后,就可以通过多 种方法来获取其中的各项内容。其中包括无效内容(Invalid )、丢失的内容(Missing)和未知的内容(Unknown)等 。当然最重要的还是返回经过处理之后的内容。 10.3.4 实战Zend_Filter_Input 前面三节为读者介绍了使用Zend_Filter_Input过滤器的 过程。本节通过一个可执行的实例来实际应用一下此过滤器 。 10.4 创建自定义过滤器 通过对10.2节中的常用预定义过滤器的学习可以发现, Zend_Filter组件中已经预定义了很多常用的过滤器。但是仅 凭这些系统预定义过滤器有时并不能完全满足实际编程环境 的需要。此时,用户可以通过自定义过滤器来满足自己更多 的需要。Zend_Filter支持自定义过滤器。本节就来介绍如何 实现自定义过滤器。 要编写自定义过滤器,需要定义一个类,并引用 Zend_Filter_Interface接口。该接口定义了filter()方法,这 个方法可以在用户的类里被实现。用 Zend_Filter:addFilter()可以把一个实现这个接口的对象添 加到过滤器链。 10.5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论