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
浙公网安备 33010602011771号