首页 >后端开发 >PHP问题 >php 怎么实现判断联通还是电信

php 怎么实现判断联通还是电信

藏色散人
藏色散人原创
2021-12-10 10:11:431927浏览

php实现判断联通还是电信的方法:1、创建一个HTML页面并通过js代码验证手机号码是否正确;2、通过PHP代码“public function phone_check(){...}”判断号码是联通还是电信即可。

php 怎么实现判断联通还是电信

本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。

php 怎么实现判断联通还是电信?

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>
<head>
    <title>手机号归属</title>
</head>
<body>
    <input type="text" onblur="mobile_check($(this).val())" >
</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 = &#39;&#39;;
    function mobile_check(phone){
        if(phone.length !== 11){
           alert(&#39;未检测到正确的手机号码&#39;);
           return false;
        }
        $.ajax({
            url:"__CONTROLLER__/phone_check",
            async:false,
            dataType:&#39;json&#39;,
            type:&#39;post&#39;,
            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(&#39;phone&#39;);
            $isChinaMobile = "/^134[0-8]\d{7}$|^(?:13[5-9]|147|15[0-27-9]|178|18[2-478])\d{8}$/"; //移动方面最新答复
            $isChinaUnion = "/^(?:13[0-2]|145|15[56]|176|18[56])\d{8}$/"; //向联通微博确认并未回复
            $isChinaTelcom = "/^(?:133|153|177|173|18[019])\d{8}$/"; //1349号段 电信方面没给出答复,视作不存在
            // $isOtherTelphone = "/^170([059])\\d{7}$/";//其他运营商
            if(preg_match($isChinaMobile, $phone)){
                $this->ajaxReturn(&#39;中国移动&#39;);  //0
            }else if(preg_match($isChinaUnion, $phone)){
                $this->ajaxReturn(&#39;中国联通&#39;);  //1
            }else if(preg_match($isChinaTelcom, $phone)){
                $this->ajaxReturn(&#39;中国电信&#39;);  //2
            }else{
                $this->ajaxReturn(&#39;未知&#39;);      //3
            }
        }
        $this->display();
    }

推荐学习:《PHP视频教程

以上是php 怎么实现判断联通还是电信的详细内容。更多信息请关注PHP中文网其他相关文章!

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