php如何判断手机号的运营商
墨初 编程开发 862阅读
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)); //中国联通