首页 php教程 php手册 php中filter函数验证邮箱、url和ip地址的实例

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

Jun 02, 2016 am 09:13 AM
url验证

在看这函数之前我验证邮箱或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 &#39;邮箱验证OK&#39;; 
    } else { 
        return &#39;验证不是邮箱&#39;; 
    } 
}
登录后复制

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

$email = &#39;sjlinyu@qq.com&#39;;  
$result = filter_var($email, FILTER_VALIDATE_EMAIL);  
var_dump($result); //string(14) "sjlinyu@qq.com"
登录后复制

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

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

<?php 
$url = &#39;www.phprm.com&#39;; 
$search = &#39;/---正则N---/&#39;; 
if(preg_match($search,$url)){ 
    echo &#39;匹配&#39;; 
}else { 
    echo &#39;不匹配&#39;; 
}
登录后复制

filter_var函数,代码如下:

$url = "http://www.phprm.com";  
$result = filter_var($url, FILTER_VALIDATE_URL);  
var_dump($result); //string(22) "http://www.phprm.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 = &#39;010&#39;;  
$result = filter_var(  
     $i,  
     FILTER_VALIDATE_INT,  
     //设定校验的数值范围  
     array(  
      &#39;options&#39; => array(&#39;min_range&#39; => 1, &#39;max_range&#39; => 100)  
     )  
 );  
var_dump($result);//bool(false)
登录后复制

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

$i = &#39;010&#39;;  
$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手册.


本文链接:

收藏随意^^请保留教程地址.

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

golang中使用正则表达式验证URL地址的方法 golang中使用正则表达式验证URL地址的方法 Jun 24, 2023 pm 04:00 PM

golang中使用正则表达式验证URL地址的方法

如何在PHP中使用正则表达式验证URL是否包含指定的字符串 如何在PHP中使用正则表达式验证URL是否包含指定的字符串 Jun 24, 2023 am 09:39 AM

如何在PHP中使用正则表达式验证URL是否包含指定的字符串

如何在golang中使用正则表达式验证URL地址是否包含查询参数 如何在golang中使用正则表达式验证URL地址是否包含查询参数 Jun 24, 2023 am 10:52 AM

如何在golang中使用正则表达式验证URL地址是否包含查询参数

如何在golang中使用正则表达式验证URL地址是否为二级域名 如何在golang中使用正则表达式验证URL地址是否为二级域名 Jun 25, 2023 pm 06:30 PM

如何在golang中使用正则表达式验证URL地址是否为二级域名

如何在golang中使用正则表达式验证URL地址是否为五级域名 如何在golang中使用正则表达式验证URL地址是否为五级域名 Jun 24, 2023 am 08:36 AM

如何在golang中使用正则表达式验证URL地址是否为五级域名

如何在golang中使用正则表达式验证URL地址是否为六级域名 如何在golang中使用正则表达式验证URL地址是否为六级域名 Jun 24, 2023 am 09:16 AM

如何在golang中使用正则表达式验证URL地址是否为六级域名

如何在PHP中使用正则表达式验证URL参数的输入 如何在PHP中使用正则表达式验证URL参数的输入 Jun 24, 2023 am 11:10 AM

如何在PHP中使用正则表达式验证URL参数的输入

golang中如何使用正则表达式验证输入是否为完整的URL地址 golang中如何使用正则表达式验证输入是否为完整的URL地址 Jun 24, 2023 pm 01:30 PM

golang中如何使用正则表达式验证输入是否为完整的URL地址

See all articles