太阳不下山 发表于 2021-8-21 14:33:56

PHP根据手机号判断运营商(详细介绍附代码)

道理很简单,知道手机号规则 进行正则判断就可以
移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
联通:130、131、132、152、155、156、185、186
电信:133、153、180、189、(1349卫通)
HTML页面


<!DOCTYPE html>
<html lang="en">
<head>
<title>手机号归属</title>
</head>
<body>
<input type="text">
</body>
</html>
<script type="text/javascript" src="__ROOT__/Public/admin/lib/jquery/1.9.1/jquery.min.js"></script>//修改为自己的路径
<script>
/*
   移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
   联通:130、131、132、152、155、156、185、186
   电信:133、153、180、189、(1349卫通)
   */
var phone = '';
function mobile_check(phone){
    if(phone.length !== 11){
      alert('未检测到正确的手机号码');
      return false;
    }
    $.ajax({
      url:"__CONTROLLER__/phone_check",
      async:false,
      dataType:'json',
      type:'post',
      data:{phone:phone},
      success:function(msg){
      alert(msg);
      }
    });
}
</script>
controller控制代码


/*
*@param string $phone手机号字符串
*@return 0中国移动,1中国联通 2中国电信 3未知
*/
public function phone_check(){
    if(IS_POST){
      $phone = I('phone');
      $isChinaMobile = "/^134\d{7}$|^(?:13|147|15|178|18)\d{8}$/"; //移动方面最新答复
      $isChinaUnion = "/^(?:13|145|15|176|18)\d{8}$/"; //向联通微博确认并未回复
      $isChinaTelcom = "/^(?:133|153|177|173|18)\d{8}$/"; //1349号段 电信方面没给出答复,视作不存在
      // $isOtherTelphone = "/^170()\\d{7}$/";//其他运营商
      if(preg_match($isChinaMobile, $phone)){
      $this->ajaxReturn('中国移动'); //0
      }else if(preg_match($isChinaUnion, $phone)){
      $this->ajaxReturn('中国联通'); //1
      }else if(preg_match($isChinaTelcom, $phone)){
      $this->ajaxReturn('中国电信'); //2
      }else{
      $this->ajaxReturn('未知');   //3
      }
    }

    $this->display();
}
以上就是全部的实现代码了,需要的朋友可以参考一下

文档来源:http://www.zzvips.com/article/178605.html
页: [1]
查看完整版本: PHP根据手机号判断运营商(详细介绍附代码)