用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

php中filter函数验证邮箱、url和ip地址的实例

时间:2015-01-23  来源:西部数据  作者:西部数据

在看这函数之前我验证邮箱或IP地址及url都是使用正则表达式来处理,今天发现filter函数可以替换正则哦并且方法简单好用,下面我用实例介绍这函数的用法吧.

早年使用php的时候还不知道有filter这玩意,那时候判断邮箱、url和ip地址格式是否符合都是用正则表达式,后来随着使用的逐渐深入,才知道在php中也可以使用内置的函数库filter来完成这些功能.

1、验证邮箱,先来看原始的正则验证,代码如下:

  1. <?php 
  2. function isEmail($email){ 
  3.  if(preg_match("/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/i",$email )) { 
  4.      return '邮箱验证OK'
  5.         } else { 
  6.  return '验证不是邮箱'
  7.  } 
  8. ?> 

再看filter这玩意,代码如下:

  1. $email = 'sjlinyu@qq.com';  
  2.  
  3. $result = filter_var($email, FILTER_VALIDATE_EMAIL);  
  4.  
  5. var_dump($result); //string(14) "sjlinyu@qq.com" 

对于filter_var这个函数,如果验证通过则会返回验证对象,否则返回false,感觉后者更简单一些.

2、验证url地址,正则验证,代码如下:

  1. <?php 
  2. $url = 'www.phpfensi.com'
  3. $search = '/---正则N---/'
  4. if(preg_match($search,$url)){ 
  5.  echo '匹配'
  6. }else { 
  7.  echo '不匹配'
  8. ?> 

filter_var函数,代码如下:

  1. $url = "http://www.phpfensi.com";  
  2.  
  3. $result = filter_var($url, FILTER_VALIDATE_URL);  
  4.  
  5. var_dump($result); //string(22) "http://www.phpfensi.com" 

3、验证ip地址,正则验证函数,代码如下:

  1. /** 
  2. * 检查IP地址是否正确。 
  3. */ 
  4. function checkipaddres ($ipaddres) { 
  5. $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/"
  6. if(preg_match($preg,$ipaddres))return true; 
  7. return false; 

此函数验证,代码如下:

  1. $url = "192.168.1.110";  
  2.  
  3. $result = filter_var($url, FILTER_VALIDATE_IP);  
  4.  
  5. var_dump($result); //string(13) "192.168.1.110" 

值的一提的是,这方法也可以用来验证ipv6,代码如下:

  1. $url = "2001:DB8:2de::e13";  
  2.  
  3. $result = filter_var($url, FILTER_VALIDATE_IP);  
  4.  
  5. var_dump($result); //string(17) "2001:DB8:2de::e13" 

4、验证数值是否为整数,并且在一个整数区间内,代码如下:

  1. $i = '010';  
  2.  
  3. $result = filter_var(  
  4.  
  5.      $i,  
  6.  
  7.      FILTER_VALIDATE_INT,  
  8.  
  9.      //设定校验的数值范围  
  10.  
  11.      array(  
  12.  
  13.       'options' => array('min_range' => 1, 'max_range' => 100)  
  14.  
  15.      )  
  16.  
  17.  );  
  18.  
  19. var_dump($result);//bool(false) 

php的变量是弱类型,如果不用过滤器,直接使用大于小于符号判断的话会是真的,代码如下:

  1. $i = '010';  
  2.  
  3. $result = $i >= 1 && $i <= 100;  
  4.  
  5.  var_dump($result);//bool(true) 

5、验证浮点数,代码如下:

  1. $float = 12.312;  
  2.  
  3. $result = filter_var($float, FILTER_VALIDATE_FLOAT);  
  4.  
  5. var_dump($result); //float(12.312) 

在做一些金额方面的验证时,经常需要验证金额是否为浮点数.

总结:php中的filter过滤器虽然比较冷门,但是功能还是蛮强大的,除了上述这些功能外,还有一些过滤输入的功能,可查阅php手册.

来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
栏目更新
栏目热门