phalcon: 过滤(Phalcon\Filter())

过滤,就是清除不需要的数据,留下想要的数据。

其调用方法如下,一:

$filter = new \Phalcon\Filter();
$filter->sanitize("some(one)@exa\mple.com", "email");

得到的结果是:"[email protected]"

  

另外一种方法是:

直接通过getPost/get获取

//gby(one)ftk\[email protected]
$email = $this->request->getPost("email", "email");
echo $email;
//[email protected]
//$this->request->getPost("参数名", "email(需要验证的规则)");

  

自定义过滤器:

案一:
class IPv4Filter
{

    public function filter($value)
    {
        return filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
    }

}

$filter = new \Phalcon\Filter();

//Using an object
$filter->add(‘ipv4‘, new IPv4Filter());

//Sanitize with the "ipv4" filter
$filteredIp = $filter->sanitize("127.0.0.1", "ipv4");

案二:
$filter = new \Phalcon\Filter();

//Using an anonymous function
$filter->add(‘md5‘, function($value) {
    return preg_replace(‘/[^0-9a-f]/‘, ‘‘, $value);
});

//Sanitize with the "md5" filter
$filtered = $filter->sanitize($possibleMd5, "md5");

  

内置过滤器类型(Types of Built-in Filters)

The following are the built-in filters provided by this component:

Name Description
string Strip tags
email Remove all characters except letters, digits and !#$%&*+-/=?^_`{|}[email protected][].
int Remove all characters except digits, plus and minus sign.
float Remove all characters except digits, dot, plus and minus sign.
alphanum Remove all characters except [a-zA-Z0-9]
striptags Applies the strip_tags function
trim Applies the trim function
lower Applies the strtolower function
upper Applies the strtoupper function
时间: 2024-10-13 13:48:20

phalcon: 过滤(Phalcon\Filter())的相关文章

在.NET下学习Extjs(第三个案例 Array的过滤方法(filter))

Ext.Array.filter(Array array,Function fn,Object scope):Array array是一个数组,fn是过滤函数,scope是作用域,filter返回的是一个新的数组. 遍历原数组的每一项,经过滤函数过滤,为true的留下构建成新的数组. 构建代码如下: 1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 &

大数据量下的集合过滤—Bloom Filter

算法背景 如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存起来,然后通过比较确定.链表.树.散列表(又叫哈希表,Hash table)等等数据结构都是这种思路,存储位置要么是磁盘,要么是内存.很多时候要么是以时间换空间,要么是以空间换时间. 在响应时间要求比较严格的情况下,如果我们存在内里,那么随着集合中元素的增加,我们需要的存储空间越来越大,以及检索的时间越来越长,导致内存开销太大.时间效率变低. 此时需要考虑解决的问题就是,在数据量比较大的情况下,既满足时间要求,又满足

微信小程序数据过滤(filter)方法

因为微信小程序的wxml和js的内部实现机制是分开编译的.所以在wxml是没办法调用js的函数的.这会导致WXML缺少一个我们常用的功能,那就是没有办法在视图层对数据做一些特殊处理.比如我们从后端获取到一个时间戳,然后需要在界面上把这些日期都格式化显示为2017-01-01这种格式的日期形式,在Vue, Angular之类的前端Web框架中,提供了如filter之类相应比较好用的方案.小程序是没有这些方法的.但是最近小程序推出了wxs类型文件就是解决这类问题的. 使用 首先新建filter.wx

路由过滤 Routing Filter

感谢当年陈SIR的谆谆教导!PPT是陈SIR的.先上一个草稿,后期有空再编辑. 用了两个OS版本测试: 15.0 M3测试失败,同样的配置,过滤失败.可能是OS问题 12.4测试成功! 锁定网络号 IP地址:   相同的bit,是什么写什么,不同的bit写0 子网掩码:相同的bit写0,不同的bit写1 172.16.0.0  0.0.3.0 标准访问控制列表篇: ------------------------------------------ -----------------------

D21_02_view过滤排序filter orderby

<Window x:Class="demo.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:db="clr-namespace:StoreDatabase;assembly=StoreDatabase&q

django model 条件过滤 queryset.filter(**condtions) 用法

1.下述代码查询model对应数据库中日期等于2018-05-22的数据: queryset = model.objects.all() condtions: {'date': '2018-05-22'} query_res = queryset.filter(**condtions) 2.下述代码查询model对应数据库中日期小于2018-05-22的数据: queryset = model.objects.all() condtions: {'date__lt': '2018-05-22'}

Phalcon之数据验证(Validation)

Phalcon\Validation对Phalcon来说是一个相对独立的组件,它可以对任意的数据进行验证. 当然也可以用来对非模型内的数据进行验证. 下面的例子展示了一些基本的使用方法: <?php use Phalcon\Validation\Validator\PresenceOf, Phalcon\Validation\Validator\Email; $validation = new Phalcon\Validation(); $validation->add('name', new

Phalcon 加密解密组件

2.40 Encryption/Decryption 加密/解密 Phalcon provides encryption facilities via thePhalcon\Crypt component. This class offers simple object-oriented wrappers to themcrypt php's encryption library. By default, this component provides secure encryption usi

phalcon安装

https://phalconphp.com/en/download/linux curl -s "https://packagecloud.io/install/repositories/phalcon/stable/script.deb.sh" | sudo bash sudo apt-get install php7.0-phalcon [email protected]:~# sudo apt-get install php7.0-phalconReading package