TOUVE 发表于 2018-12-17 08:15:34

filter_var() 验证邮箱、ip、url的格式 php

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

  直到了某一天认真的研究了filter_var()函数的参数;
  我对以前走马观花式的阅读php文档表示深深的惭愧;
  其实filter_var()第二个参数传FILTER_VALIDATE_EMAIL即可验证邮箱、略加整理就如下;

/**
* 验证是否是邮箱
* @paramstring$email 邮箱
* @return boolean      是否是邮箱
*/
function is_email($email){
    if(filter_var($email,FILTER_VALIDATE_EMAIL)){
      return true;
    }else{
      return false;
    }
}
var_dump(is_email('baijunyao@baijunyao.com'));
// 打印 ture
var_dump(is_email('baijunyao.com'));
// 打印 false  经研究;这个函数验证邮箱的规则就是要有个@符号;然后@符号后面还要有个英文句号. ;

  咦?看到baijunyao.com;那有木有一个可以验证url域名的函数?
  恩;没错;有的;第二个参数传FILTER_VALIDATE_URL就是用来验证url的;
/**
* 验证是否是url
* @paramstring$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://baijunyao.com'));// 打印 true
var_dump(is_url('baijunyao.com'));// 打印 false
var_dump(is_url('http://a'));// 打印 true  根据打印的结果可知;判断是否是url的规则就是要有http:// 后边要跟一个字母数字即可;
  当然;顺理成章;第二个参数传FILTER_VALIDATE_IP的时候就是验证是否是ip地址了;
  filter_var很强大的样子;那传个FILTER_VALIDATE_PHONE 是不是就可以验证手机号了?
  恩恩;;;答案是否定的;你想多了;

  别看了;这是做文章封面图用的;

  




页: [1]
查看完整版本: filter_var() 验证邮箱、ip、url的格式 php