php中filter函数验证邮箱、url和ip地址的实例
发布:smiling 来源: PHP粉丝网 添加日期:2014-09-22 15:24:31 浏览: 评论:0
在看这函数之前我验证邮箱或IP地址及url都是使用正则表达式来处理,今天发现filter函数可以替换正则哦并且方法简单好用,下面我用实例介绍这函数的用法吧.
早年使用php的时候还不知道有filter这玩意,那时候判断邮箱、url和ip地址格式是否符合都是用正则表达式,后来随着使用的逐渐深入,才知道在php中也可以使用内置的函数库filter来完成这些功能.
1、验证邮箱,先来看原始的正则验证,代码如下:
- <?php
- function isEmail($email){
- if(preg_match("/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/i",$email )) {
- return '邮箱验证OK';
- } else {
- return '验证不是邮箱';
- }
- }
- ?>
再看filter这玩意,代码如下:
- $email = 'sjlinyu@qq.com';
- $result = filter_var($email, FILTER_VALIDATE_EMAIL);
- var_dump($result); //string(14) "sjlinyu@qq.com"
对于filter_var这个函数,如果验证通过则会返回验证对象,否则返回false,感觉后者更简单一些.
2、验证url地址,正则验证,代码如下:
- <?php
- $url = 'www.phpfensi.com';
- $search = '/---正则N---/';
- if(preg_match($search,$url)){
- echo '匹配';
- }else {
- echo '不匹配';
- }
- ?>
filter_var函数,代码如下:
- $url = "http://www.phpfensi.com";
- $result = filter_var($url, FILTER_VALIDATE_URL);
- var_dump($result); //string(22) "http://www.phpfensi.com"
3、验证ip地址,正则验证函数,代码如下:
- /**
- * 检查IP地址是否正确。
- */
- function checkipaddres ($ipaddres) {
- $preg="/A((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5])).){3}(([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))Z/";
- if(preg_match($preg,$ipaddres))return true;
- return false;
- }
此函数验证,代码如下:
- $url = "192.168.1.110";
- $result = filter_var($url, FILTER_VALIDATE_IP);
- var_dump($result); //string(13) "192.168.1.110"
值的一提的是,这方法也可以用来验证ipv6,代码如下:
- $url = "2001:DB8:2de::e13";
- $result = filter_var($url, FILTER_VALIDATE_IP);
- var_dump($result); //string(17) "2001:DB8:2de::e13"
4、验证数值是否为整数,并且在一个整数区间内,代码如下:
- $i = '010';
- $result = filter_var(
- $i,
- FILTER_VALIDATE_INT,
- //设定校验的数值范围
- array(
- 'options' => array('min_range' => 1, 'max_range' => 100)
- )
- );
- var_dump($result);//bool(false)
php的变量是弱类型,如果不用过滤器,直接使用大于小于符号判断的话会是真的,代码如下:
- $i = '010';
- $result = $i >= 1 && $i <= 100;
- var_dump($result);//bool(true)
5、验证浮点数,代码如下:
- $float = 12.312;
- $result = filter_var($float, FILTER_VALIDATE_FLOAT);
- var_dump($result); //float(12.312)
在做一些金额方面的验证时,经常需要验证金额是否为浮点数.
总结:php中的filter过滤器虽然比较冷门,但是功能还是蛮强大的,除了上述这些功能外,还有一些过滤输入的功能,可查阅php手册.
Tags: filter函数验证邮箱 url验证
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)