wangpeng-php

导航

zend framework 2.0 过滤器使用学习

zf中什么是过滤器呢?

通俗的理解就像是一台豆浆机,当你放入水和绿豆的时候,将会产生理想中的豆浆。那么过滤器也是如此这般,是用来过滤不理想数据用的。那么来小小的实验一个:

1 //实例化过滤器中的html输出类.
2 $htmlentities = new Zend\Filter\HtmlEntities();
3 $str = '<a href="#">Demo</a>';
4 echo $htmlentites->filter($str);
5 /*在这里$str没有使用过滤器是将输出的是浏览器解析顾虑的a标签,当使用了过滤器中的HtmlEntities这个类时则会把HTML字符原样输出到前台。*/

吼吼.学习第一个顾虑器HtmlEntities是不是觉得很简单啊!反正我是这样认为的。那么下面再来看看StringToLower这个类吧!我可以保证这个和上面HtmlEntities一样的简单。

1 //实例化顾虑器中对字母小写化的StringTOLower类.
2 $stringtolower = new Zend\Filter\StringToLower;
3 $str = 'I LOVE PHP!';
4 echo $stringtolower($str); //输出 i love php!

一口气学习了过滤器中2个比较容易的功能,现在我们来学习一下不进行new来创建过滤器。这个看起来有一点感觉..... 呵呵  不过呢!在使用这个功能之前你自己必须要在header上面进行use一下FilterStatic这个命名空间方可使用以下实例。

1 //使用这个方法不需实例化因为是类的方法噢!
2 $str = '<a href="#"></a>';
3 echo FilterStatic::execute($str,'HtmlEntities'); //第一个参数是输出字符,第二个是namespace的类名.
4 //这个输出什么我想闭着眼睛都知道.

接着我们来学习一下对字符的双重过滤,不要错过了这个功能挺好玩的。

1 //给定一个字符串用来实例.
2 $str = 'my_controller_class';
3 //这个功能就是对一个有规则下滑下的字符进行过滤转化成驼峰
4 $filter=newZend\Filter\Word\UnderscoreToCamelCase();
5 echo $filter->filter($str); //输出 MyControllerClass;
6 //这里就是根据驼峰来转换成带下划线的字符
7 $filter2 = new Zend\Filter\Word\CamelCaseToUnderscore();
8 echo $filter2->filter($str); //输出My_Controller_Class;

 总算是告了一个小段落了。下面跟着学习一些经常用的到功能插件吧!以前嘛!自己学习一些东西得时候做笔记都是有头没有尾的,今天我是下了一个决心。不管以后学习一些神马东西我都会以文章的形式来进行日记记录。这样后大脑里思路也更加的明细。关键还好玩...

Filter - Alnum Alpha 这二个功能的话就需要安装php_intl.dll这个扩展才行。这里的话我就没有讲了。 我自己都没有找到相关的资料。等解决了再来完善。
有一点沮丧的心情上面问题纠结了我一个多小时。还是继续我下一步学习吧!

1 $filter = new Zend\Filter\BaseName();
2 print $filter->filter('/vol/tmp/filename');

这个就不要我来讲了吧! 是不是跟php里的一个方法很相似》有木有...
对,就是返回一个地址中的文件名

Boolean

这个也很容易啦! 不就是判断一个变量是不是为正!不过还是自己手动的来验证一下吧!

1 $boolean = new \Zend\Filter\Boolean;
2 $ret = $boolean->filter('');
3 if($ret == false) echo 121;

 

Callback

这个就有一点意思啦! 作用嘞就是字符串翻转,但是也可以自己写一个类作为这个类的回调。看....

$callback = new \Zend\Filter\CallBack('strrev');
$str = 'hello!';
echo $callback->filter($str); //输出!olleh

 

这个方法呢!我在实例化的时候'strrev'没有传进去的时候就会出错我看了一下源码有二个参数下标为0的就一定要丢进来, 下标为1的就可以不用。我想这个是一个固定的值吧! 

Compress and Decompress

这两个过滤器能够压缩和解压缩字符串,文件和目录。

1 $filter     = new \Zend\Filter\Compress('Gz');
2 $compressed = $filter->filter('Uncompressed string');
3 echo $compressed; 

 

1 $filter     = new \Zend\Filter\Compress(array(
2                 'adapter' => 'Gz',
3                 'options' => array(
4                     'archive' => 'filename.gz',
5                 ),
6             ));
7 $compressed = $filter->filter('Uncompressed string');

这个就好玩了哦!会在你的根目录生成一个文件filenname.gz的压缩文件。好玩吧!

Digits

返回给定的变量中的仅存的数字

1 $digits = new \Zend\Filter\Digits;
2 print $digits->filter('October 2012');
3 //输出2012

Dir

给定一个字符串,其中包含一个文件的路径,这个函数将返回的目录的名称。

1 $dir = new \Zend\Filter\Dir;
2 print $dir->filter('/etc/passwd/d.php'); 
3 //返回/etc/passwd

 

posted on 2013-01-12 11:53  红尘菩提  阅读(251)  评论(0)    收藏  举报