过滤器就是对输入的内容过滤,清除其中不符合过滤规则的内容,并将其余的内容返回的过程,对用户输入的内容进行无害化处理。
过滤器的使用方法
过滤器使用分为两种,一种是使用单个过滤器,一种是使用过滤器链,都是用Zend_Filter组件完成的。
使用单个过滤器
Zend_Filter中已经事先定义很多常用的的过滤器子类。要使用这些过滤器,首先要加载相应的组件,然后为类实例化对象,再调用对象的filter()方法即可。如下:
$filter=new Zend_Filter_StringToLower(); //StringToLowerz 这个呢是
$temp1="abcdEFGHIGKLMNopqrstuvwXYz";
$temp2="我爱BeiJing天安门";
echo "内容:".$temp1."<p>经过滤后:";
echo $filter->filter($temp1);
echo "<p>";
echo "内容:".$temp2."<p>经过滤后:";
echo $filter->filter($temp2);
使用过滤链
过滤链就是多个过滤器的一个连接。在对指定的内容进行过滤时,每个过滤器将按照其顺序分别进行过滤或者转化操作。当所有的过滤操作都被执行完毕时,过滤链返回最终的过滤结果。
创建一个过滤链,首先为类Zend_Filter实例化一个对象,然后通过该实例化的addFilter()方法向过滤器中添加过滤器。该方法的语法格式如下。
addFilter(Zend_Filter_Interface $filter);
其中,参数$filter为一个定义的过滤器类的实例。执行方法,指定的过滤器将被添加到过滤器链中。
举个例子,该例子将使用Zend_Filter_Alpha过滤器与Zend_Filter_StringToUpper过滤器分别实现对字母与数值的过滤。
$filterChain=new Zend_Filter();
$filterChain->addFilter(new Zend_Filter_Alpha()) //使用创建的对象调用addFilter方法
->addFilter(new Zend_Filter_StringToUpper());
$temp1="1234sadfDSFDSA345dfg";
$temp2="@#%$@%234rfesffSDFSw23ffffff";
echo "内容:".$temp1."<p>经过滤后:";
echo $filterChain->filter($temp1);
echo "<p>";
echo "内容:".$temp2."<p>经过滤后:";
echo $filterChain->filter($temp2);
上述代码创建的是一个过滤链,然后往里边添加Alpha过滤器和StringToUpper过滤器。通过过滤链,非字母内容(包括空格)都被过滤,且剩余的字母也都被转化为了大写,说明使用过滤链成功执行了多重过滤操作。。。