过滤器(ZendFilter).ppt

上传人:牧羊曲112 文档编号:6207895 上传时间:2023-10-05 格式:PPT 页数:16 大小:590.87KB
返回 下载 相关 举报
过滤器(ZendFilter).ppt_第1页
第1页 / 共16页
过滤器(ZendFilter).ppt_第2页
第2页 / 共16页
过滤器(ZendFilter).ppt_第3页
第3页 / 共16页
过滤器(ZendFilter).ppt_第4页
第4页 / 共16页
过滤器(ZendFilter).ppt_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《过滤器(ZendFilter).ppt》由会员分享,可在线阅读,更多相关《过滤器(ZendFilter).ppt(16页珍藏版)》请在三一办公上搜索。

1、第10章 过滤器(Zend_Filter),过滤器(Filter)是对输入内容进行过滤,清除其中不符合过滤规则的内容,并将其余内容返回的过程。过滤器这一机制广泛应用于Web用户互动程序中,通过过滤器可以对用户的输入内容进行无害化处理。最常使用的就是清除指定内容中的HTML代码,或者其中的回车换行符等。Zend Framework也提供了对过滤器的支持,使用Zend_Filter组件即可实现过滤器的功能。本章来介绍Zend Framework中的Zend_Filter过滤器组件。,10.1 过滤器的使用方法,对引言中过滤器的基本定义进行延伸,过滤器除了清除内容之外还包括一般化的对输入数据的转化。

2、作为使用过滤器的第一步,本节先来介绍过滤器的通常使用方法。本节内容包括如何使用单个过滤器与如何使用过滤器链。通过本节的介绍,读者会对如何使用过滤器有一个深刻的认识。,10.1.1 使用单个过滤器,Zend_Filter中有一个Zend_Filter_Interface子类,该子类为实现一般过滤器提供了接口。要实现过滤器类,需要实现该接口中一个名为filter()的方法。通过filter()方法过滤掉指定内容中不需要的部分即可。Zend_Filter中已经事先定义了很多常用的过滤器子类。要使用这些过滤器,首先要加载相应的组件,然后为类实例化对象,再调用对象的filter()方法即可。,10.1.

3、2 使用过滤器链,过滤器除了单个使用之外,还可以将多个过滤器串连起来配合使用。过滤器链就是多个过滤器的一个连接。在对指定的内容进行过滤时,每个过滤器将按照其顺序分别进行过滤或者转化操作。当所有的过滤操作都被进行完时,过滤器链返回最终的过滤结果。过滤器链与单一的过滤器一样,也可以执行Filter()方法,调用此方法即可对指定数据进行多重过滤或者转化操作。,10.2 常用的预定义过滤器,名称过滤内容Alnum所有非字母或数字的内容Alpha所有非字母的内容BaseName给定路径所有非文件名部分Digits所有非数值的内容Dir给定路径所有非目录部分HtmlEntities替换HTML标记符:“”

4、Input(该过滤器较为特殊,将在10.3小节详细介绍)Int非整数的内容RealPath所有非规范化的绝对路径名StringToLower字母全部转换为小写StringToUpper字母全部转换为大写StringTrim字符串首尾的空格StripTags去除字符串的HTML内容表10.1中的Alpha、StringToLower、StringToUpper过滤器在前两节介绍实例中已经做了介绍。本节将重点介绍剩余的Alnum、HtmlEntities、Int与StripTags过滤器。另外,Input过滤器比较特殊,将在本章10.3节中详细介绍。除此之外的过滤器使用都非常简单,这里不再赘述。,

5、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

6、内容都将被过滤掉。,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过滤器,在所有的预定义过滤器

7、中,Zend_Filter_Input是最为特殊的一类过滤器。该过滤器的使用方法与其他过滤器的使用方法有很大不同,该过滤器专门用于实现对互动程序中用户输入数据的过滤。要实现该过滤器通常要分以下几步:定义过滤与校验规则。创建过滤与校验处理器。检索处理后的字段与其他报告内容。本节就按照上述使用顺序来详细介绍如何使用Zend_Filter_Input进行过滤操作。其中提到了关于校验器的知识,关于这部分内容将在本书第派遣11章详细介绍。,10.3.1 定义过滤与校验规则,在创建一个Zend_Filter_Input类的实例之前,需要为该过滤器分别创建过滤规则与校验规则数组。其中两个数组的键与值,为需要

8、获取前台表单的表单项名称,与相应对其进行处理的子类名称。如对用户输入的用户名进行小写转换(StringToLower),对用户输入的年龄进行非数值过滤(Digits)。另外,还需要对用户进行是否为字母的校验。,10.3.2 创建Input过滤器,在定义完过滤与校验规则之后,就可以创建Zend_Filter_Input过滤器了。该创建过程只需要为Zend_Filter_Input类使用new关键字实例化对象即可。在实例化对象时需要指明所定义的过滤与校验规则。,10.3.3 检索处理后的字段与其他内容,在定义了Zend_Filter_Input过滤器之后,就可以通过多种方法来获取其中的各项内容。其

9、中包括无效内容(Invalid)、丢失的内容(Missing)和未知的内容(Unknown)等。当然最重要的还是返回经过处理之后的内容。,10.3.4 实战Zend_Filter_Input,前面三节为读者介绍了使用Zend_Filter_Input过滤器的过程。本节通过一个可执行的实例来实际应用一下此过滤器。,10.4 创建自定义过滤器,通过对10.2节中的常用预定义过滤器的学习可以发现,Zend_Filter组件中已经预定义了很多常用的过滤器。但是仅凭这些系统预定义过滤器有时并不能完全满足实际编程环境的需要。此时,用户可以通过自定义过滤器来满足自己更多的需要。Zend_Filter支持自定

10、义过滤器。本节就来介绍如何实现自定义过滤器。要编写自定义过滤器,需要定义一个类,并引用Zend_Filter_Interface接口。该接口定义了filter()方法,这个方法可以在用户的类里被实现。用Zend_Filter:addFilter()可以把一个实现这个接口的对象添加到过滤器链。,10.5 小结,本章介绍了Zend Framework中的过滤器组件。使用Zend_Filter可以有效过滤用户的输入数据,这种机制广泛应用于互动网络应用程序中。使用过滤器过滤掉或者转化用户所输入内容中的不合规则成份,一方面可以减轻程序对无用数据进行不必要的处理。另一方面也可以在某种程度上提高程序的安全性。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号