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卫通)
     */
    /**
     *   手机服务商函数 getphonetype
     *@author by @tianxiao
     *@param  string  $phone   手机号字符串
     *@return  unsignedint   0中国移动,1中国联通  2中国电信  3未知
     **/
    function getphonetype($phone){
        $phone = trim($phone);
        $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)){
            return 0;
        }elseif(preg_match($isChinaUnion, $phone)){
            return 1;
        }elseif(preg_match($isChinaTelcom, $phone)){
            return 2;
        }else{
            return 3;
        }
    }

/* 移动: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卫通) *//** *   手机服务商函数 getphonetype *@author by @tianxiao *@param  string  $phone   手机号字符串 *@return  unsignedint   0中国移动,1中国联通  2中国电信  3未知 **/function getphonetype($phone){    $phone = trim($phone);    $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)){        return 0;    }elseif(preg_match($isChinaUnion, $phone)){        return 1;    }elseif(preg_match($isChinaTelcom, $phone)){        return 2;    }else{        return 3;    }}

原文地址:https://www.cnblogs.com/zhangzhijian/p/7943088.html