Zend_Filter 过滤器

Zend Filter定义了一个接口 Zend_Filter_Interface,里面定义了一个方法filter(),其他类继承这个接口时,可以根据具体需要实现这个方法。

过滤器的基本用法:

1、

$htmlEntities = new Zend_Filter_HtmlEntities();

echo $htmlEntities->filter('&'); // &
echo $htmlEntities->filter('"'); // "
2、使用静态get方法, 这个方法的第一个参数是数据输入值,将传递给  filter()  方法,第二个参数是个字符串,对应于过滤器类的基本名,和 Zend_Filter 名称空间有关。 get()  方法自动加载这个类,创建一个实例,并应用  filter()  方法给数据输入。

echo Zend_Filter::get('&', 'HtmlEntities');

如果过滤器类需要,也可以传递一个数组构造参数

echo Zend_Filter::get('"', 'HtmlEntities', array(ENT_QUOTES));

16.2.  标准过滤器类

Zend Framework 带有一组标准的过滤器。

16.2.1. Alnum

返回只保留字母和数字的字符串 $value,这个过滤器包括一个允许空白字符的选项。

16.2.2. Alpha

返回只保留字母的字符串 $value,这个过滤器包括一个允许空白字符的选项。

16.2.3. BaseName

给定包含一个文件的路径字符串,这个过路器将返回这个文件的基本名(base name)。

16.2.4. Digits

返回只保留数字的字符串 $value

16.2.5. Dir

返回路径的名字部分。

16.2.6. HtmlEntities

返回转换成它们对应 HTML 实体的字符串 $value

16.2.7. Int

返回整数 $value

16.2.8. StripNewlines

返回不带任何新行控制符的字符串 $value 。

16.2.9. RealPath

扩展所有符号的链接和解析指向在输入路径里的 '/./', '/../' 和额外的 '/' 字符并且返回规范化后的绝对路径名,返回的结果路径将没有符号链接 '/./' 或 '/../' 部分。

如果失败,例如文件不存在,Zend_Filter_RealPath 将返回 FALSE。在 BSD 系统,如果只有路径最后部分不存在, Zend_Filter_RealPath 不会失败,但其它系统返回 FALSE

16.2.10. StringToLower

返回按需转换字母成小写的字符串 $value

16.2.11. StringToUpper

返回按需转换字母成大写的字符串 $value

16.2.12. StringTrim

返回从头到尾整理过的字符串 $value

16.2.13. StripTags

返回把 HTML 和 PHP 标签已剥离的(声明为允许的标签不会剥离)输入的字符串。除了能指定允许哪个标签,开发者也可以在所有允许的标签(或只对特定的标签)中指定哪个属性被允许。最后,这个过滤器提供控制是否注释(如<!-- ... -->)被删除或允许。


4、过滤器链

$filterChain = new Zend_Filter();
$filterChain->addFilter(new Zend_Filter_Alpha())
            ->addFilter(new Zend_Filter_StringToLower());

// Filter the username
$username = $filterChain->filter($_POST['username']);
5、编写过滤器,开发者可以根据自己的需要编写过滤器, 只要实现 Zend_Filter_Interface 接口。

使用Zend_Filter::addFilter()方法,可以把一个实现了这个接口的对象添加到过滤器链中。


下面的例子,示范了怎样编写一个定制的过滤器:

class MyFilter implements Zend_Filter_Interface
{
    public function filter($value)
    {
        // perform some transformation upon $value to arrive on $valueFiltered

        return $valueFiltered;
    }
}

       

添加上述过滤器的实例到过滤器链中:

$filterChain = new Zend_Filter();
$filterChain->addFilter(new MyFilter());

6、 Zend_Filter_Input

Zend_Filter_Input 提供了一个声明接口来联合多重过滤器和校验器,使用 它们来收集数据并在用过滤器和校验器处理之后来获取输入值。为 HTML 输出 安区起见,缺省的返回值是转义格式。

$filters = array(
    'month'   => 'Digits',
    'account' => 'StringTrim'
);

$validators = array(
    'account' => 'Alpha'
);
$input = new Zend_Filter_Input($filters, $validators);
if ($input->isValid('month')) {
  echo "Field 'month' is OK\n";
}




博客已转到phpfan.cn


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值