php 过滤器实现代码
php  /  管理员 发布于 7年前   181
在以前,PHP需要验证数据,一般都是程序员自己通过正则表达式实现,而从PHP从5.2开始把原本的PCEL中的filter函数移到了内置库中,并做了不少强化,可以用这些函数实现对数据的过滤和验证。 数据来源及验证类型 简单用法 $str = '51ab'; $str = '51ab'; print_r(filter_list()); // 所有支持的过滤器名称。 array(0=>int',1=>'boolean',2=>'float',3=>'validate_regexp') $email = '
PHP中的数据来源包含两部分,其一是外部变量(如POST、GET、COOKIE等),还有一种是页面内部产生的数据。PHP针对这两种数据类型分别定义了ilter_input_**和filter_var_**系列函数。而依据验证方法的不一样又可以分为Validating和Sanitizing两种。Validating用于验证数据,返回一个布尔值。Sanitizing则按规则过滤一些特定的字符,返回的是处理后的字符串。
比如验证一个字符串是否是一个整数,在以往我们可以通过正则表达式或是is_numeric函数实现:
$str = '51ab';
preg_match('/^[0-9]*$/', $str);
is_numeric($str);
新的验证函数可以用以下方式:
echo filter_var($str, FILTER_VALIDATE_INT) ? 'is valid' : 'is not valid';FILTER_VALIDATE_INT是PHP定义的一个过滤器,用于验证$str是否为一个整数。实际上这就是一个数值常量,通过echo FILTER_VALIDATE_INT;发现值为257。所以我们也可以用:
echo filter_var($str, 257) ? 'is valid' : 'is not valid';PHP中定义了大量常用的过滤器,我们可以通过filter_list()获得所有支持的过滤器名称(用字符串表示),然后再用filter_id(string)获取其数值:
echo '=========';
echo filter_id('int'); // 'int' 是filter_list返回的一个过滤器名称。以上将输入出类似以下内容:
==========
257Sanitizing过滤器
上面这个是验证数据格式是否正确,有时候过滤掉无关的内容也是挺重要的。SANITIZE过滤提供了这种功能,比如过滤掉一个email中多余的字符:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号