包 | helper |
---|---|
类层次 | class QFilter |
版本 | $Id: filter.php 2017 2009-01-08 19:09:51Z dualface $ |
类 QFilter 实现了过滤器接口,以及一些常用的过滤器方法
QFilter 的所有方法都是静态方法,可以采用三种方式使用 QFilter:
$value = QFilter::filter_alpha($value);
$value = QFilter::filter($value, 'alpha');
$value = QFilter::filterBatch($value, $filters);
上述三种方式适合不同的情况,可以酌情使用。
方法 | 描述 | 定义于 |
---|---|---|
filter() | 调用单个过滤器过滤值,并返回过滤结果 | QFilter |
filterBatch() | 用一组过滤器过滤值,返回过滤结果 | QFilter |
filterByArgs() | 以数组参数的形式调用一个过滤器 | QFilter |
filter_alnum() | 过滤掉非字母和数字 | QFilter |
filter_alpha() | 过滤掉非字母 | QFilter |
filter_digits() | 过滤掉非数字 | QFilter |
public static mixed filter($value, $filter)
$value | mixed | 要过滤的值 |
$filter | mixed | 过滤器 |
{return} | mixed | 过滤后的值 |
调用单个过滤器过滤值,并返回过滤结果
$value = QFilter::filter($value, 'alpha');
过滤器可以是下列类型的函数或方法:
如果出现同名的过滤器方法,按照上述顺序来检查。
QFilter 内置的过滤器,实际上是 QFilter 类中以“filter_”开头的静态方法。 例如:filter_alpha、filter_digits。
大多数过滤器只需要一个参数 ,及要过滤的值。但部分过滤器要求更多的参数。 此时在调用 QFilter::filter() 时,可以将额外的参数一起提供:
// 等同于 $value = substr($value, 0, -3) $value = QFilter::filter($value, 'substr', 0, -3);
不过对于要求多个参数的过滤器,其第一个参数必须是被过滤的值。
public static mixed filterBatch($value, $filters)
$value | mixed | 要过滤的值 |
$filters | array | 包含多个过滤器和过滤器参数的数组 |
{return} | mixed | 过滤后的值 |
用一组过滤器过滤值,返回过滤结果
QFilter::filterBatch() 可以很方便对一个值使用一组过滤器,并返回最终结果。
$filters = array( array('alpha'), array('MyClass::myFilter'), array('substr', 0, -4), ); $value = QFilter::filterBatch($value, $filters);
传递给 filterBatch() 方法的第二个参数包含了多个过滤器及其附加参数(如果有的话)。
public static mixed filterByArgs($value, $args)
$value | array | 要过滤的值 |
$args | array | 要调用的过滤器及参数 |
{return} | mixed | 过滤后的值 |
以数组参数的形式调用一个过滤器
public static string filter_alnum($value)
$value | string | 要过滤的值 |
{return} | string | 过滤后的值 |
过滤掉非字母和数字
$value = 'abcd."1234"'; $value = QFilter::filter_alnum($value); // 过滤后的值为 abcd1234
除了直接调用该方法,还可以通过 QFilter::filter() 等方法来调用这个过滤器。
public static string filter_alpha($value)
$value | string | 要过滤的值 |
{return} | string | 过滤后的值 |
过滤掉非字母
使用方法同 filter_alnum()。
public static string filter_digits($value)
$value | string | 要过滤的值 |
{return} | string | 过滤后的值 |
过滤掉非数字
使用方法同 filter_alnum()。
protected static boolean _unicodeEnabled()
确认 PCRE 是否支持 utf8 和 unicode