php如何判断手机号的运营商
墨初 编程开发 483阅读
php脚本中想要通过手机号来判断手机号的运营商,可以使用正则的方法。但在使用正则之前,需要有各个运营商的一些号码段的数据。
手机号运营商号码段数据
中国移动:134、135、136、137、138、139、150、151、152、157(TD)、158、159、182、183、184、187、188、147(数据卡)
中国联通:130、131、132、152、155、156、185、186
中国电信:133、153、180、181、189
ps:数据收集来自网络,可以有一些不准确,可以自行修改一下哦
php获取手机号运营商的方法
php函数
/** * # 判断手机号运营商 * @param int $phone 手机号 * * @return string * https://www.73so.com */ function phone_check($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}$/"; if(preg_match($isChinaMobile, $phone)){ return '中国移动'; }else if(preg_match($isChinaUnion, $phone)){ return '中国联通'; }else if(preg_match($isChinaTelcom, $phone)){ return '中国电信'; }else{ return '虚拟运营商'; } }
函数调用:
print_r(phone_check(13512345678)); //中国移动 print_r(phone_check(18612345678)); //中国联通