首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[分享]filter_var() 验证邮箱、ip、url的格式

发布于 2025-04-15 11:04:57
0
38

验证邮箱格式的正确与否,你的第一解决方案是什么呢?不管你们怎么思考的,反正我首先想到的就是字符串查找看是否有符号,但是对于结尾的.com或者.net 亦或者.cn等等越来越多的域名验证感觉棘手,直到了...

验证邮箱格式的正确与否,你的第一解决方案是什么呢?不管你们怎么思考的,反正我首先想到的就是字符串查找看是否有@符号,但是对于结尾的.com或者.net 亦或者.cn等等越来越多的域名验证感觉棘手,直到了某一天认真的研究了filter_var()函数的参数,我对以前走马观花式的阅读php文档表示深深的惭愧,其实filter_var()第二个参数传FILTER_VALIDATE_EMAIL即可验证邮箱、略加整理就如下。

/**
 * 验证是否是邮箱
 * @param  string  $email 邮箱
 * @return boolean        是否是邮箱
 */
function is_email($email){
    if(filter_var($email,FILTER_VALIDATE_EMAIL)){
        return true;
    }else{
        return false;
    }
}
var_dump(is_email('921349888@qq.com'));
// 打印 ture
var_dump(is_email('z6.net.cn'));
// 打印 false

经研究;这个函数验证邮箱的规则就是要有个@符号,然后@符号后面还要有个英文句号.。
那有木有一个可以验证url域名的函数?
恩,没错,有的,第二个参数传FILTER_VALIDATE_URL就是用来验证url的。

/**
 * 验证是否是url
 * @param  string  $url   url
 * @return boolean        是否是url
 */
function is_url($url){
    if(filter_var($url,FILTER_VALIDATE_URL)){
        return true;
    }else{
        return false;
    }
}
var_dump(is_url('http://z6.**.cn'));// 打印 true
var_dump(is_url('z6.***.cn'));// 打印 false
var_dump(is_url('http://a'));// 打印 true

根据打印的结果可知,判断是否是url的规则就是要有“http://”后边要跟一个字母数字即可。当然,顺理成章;第二个参数传FILTER_VALIDATE_IP的时候就是验证是否是ip地址了。
filter_var很强大的样子,那传个FILTER_VALIDATE_PHONE 是不是就可以验证手机号了?
恩恩,答案是否定的。你想多了…..

评论
一个月内的热帖推荐
啊龙
Lv.1普通用户

844

帖子

23

小组

1569

积分

站长交流