Maison 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;; 
    } 
}
Copier après la connexion

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

$email = &#39;sjlinyu@qq.com&#39;;  
$result = filter_var($email, FILTER_VALIDATE_EMAIL);  
var_dump($result); //string(14) "sjlinyu@qq.com"
Copier après la connexion

对于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;; 
}
Copier après la connexion

filter_var函数,代码如下:

$url = "http://www.phprm.com";  
$result = filter_var($url, FILTER_VALIDATE_URL);  
var_dump($result); //string(22) "http://www.phprm.com"
Copier après la connexion

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; 
}
Copier après la connexion

此函数验证,代码如下:

$url = "192.168.1.110";  
$result = filter_var($url, FILTER_VALIDATE_IP);  
var_dump($result); //string(13) "192.168.1.110"
Copier après la connexion

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

$url = "2001:DB8:2de::e13";  
$result = filter_var($url, FILTER_VALIDATE_IP);  
var_dump($result); //string(17) "2001:DB8:2de::e13"
Copier après la connexion

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)
Copier après la connexion

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

$i = &#39;010&#39;;  
$result = $i >= 1 && $i <= 100;  
var_dump($result);//bool(true)
Copier après la connexion

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

$float = 12.312;  
$result = filter_var($float, FILTER_VALIDATE_FLOAT);  
var_dump($result); //float(12.312)
Copier après la connexion

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

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


本文链接:

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

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser des expressions régulières pour vérifier les adresses URL dans Golang Comment utiliser des expressions régulières pour vérifier les adresses URL dans Golang Jun 24, 2023 pm 04:00 PM

Comment utiliser des expressions régulières pour vérifier les adresses URL dans Golang

Comment vérifier si une URL contient une chaîne spécifiée à l'aide d'expressions régulières en PHP Comment vérifier si une URL contient une chaîne spécifiée à l'aide d'expressions régulières en PHP Jun 24, 2023 am 09:39 AM

Comment vérifier si une URL contient une chaîne spécifiée à l'aide d'expressions régulières en PHP

Comment vérifier si l'adresse URL contient des paramètres de requête à l'aide d'une expression régulière dans Golang Comment vérifier si l'adresse URL contient des paramètres de requête à l'aide d'une expression régulière dans Golang Jun 24, 2023 am 10:52 AM

Comment vérifier si l'adresse URL contient des paramètres de requête à l'aide d'une expression régulière dans Golang

Comment utiliser des expressions régulières dans Golang pour vérifier si l'adresse URL est un nom de domaine de deuxième niveau Comment utiliser des expressions régulières dans Golang pour vérifier si l'adresse URL est un nom de domaine de deuxième niveau Jun 25, 2023 pm 06:30 PM

Comment utiliser des expressions régulières dans Golang pour vérifier si l'adresse URL est un nom de domaine de deuxième niveau

Comment utiliser des expressions régulières dans Golang pour vérifier si l'adresse URL est un nom de domaine de cinquième niveau Comment utiliser des expressions régulières dans Golang pour vérifier si l'adresse URL est un nom de domaine de cinquième niveau Jun 24, 2023 am 08:36 AM

Comment utiliser des expressions régulières dans Golang pour vérifier si l'adresse URL est un nom de domaine de cinquième niveau

Comment utiliser des expressions régulières dans Golang pour vérifier si l'adresse URL est un nom de domaine de sixième niveau Comment utiliser des expressions régulières dans Golang pour vérifier si l'adresse URL est un nom de domaine de sixième niveau Jun 24, 2023 am 09:16 AM

Comment utiliser des expressions régulières dans Golang pour vérifier si l'adresse URL est un nom de domaine de sixième niveau

Comment valider la saisie des paramètres d'URL à l'aide d'expressions régulières en PHP Comment valider la saisie des paramètres d'URL à l'aide d'expressions régulières en PHP Jun 24, 2023 am 11:10 AM

Comment valider la saisie des paramètres d'URL à l'aide d'expressions régulières en PHP

Comment utiliser des expressions régulières dans Golang pour vérifier si l'entrée est une adresse URL complète Comment utiliser des expressions régulières dans Golang pour vérifier si l'entrée est une adresse URL complète Jun 24, 2023 pm 01:30 PM

Comment utiliser des expressions régulières dans Golang pour vérifier si l'entrée est une adresse URL complète

See all articles