PHP+MYSQL实现手机号码归属地查询附最新手机号码数据库下载

摘要为你介绍PHP+MYSQL实现手机号码归属地查询的办法,原理很简单:重点是建立一个手机号码段MYSQL数据表,利用PHP操作这个表只是小儿科了。另外,还为你提供最新的免费手机号码数据库下载。

手机号码归属地查询这个概念大家都不陌生吧!像我们在百度搜索框中输入一个正确的手机号码,点击搜索,就会显示这个手机号码的归属地和卡类型,非常方便。今天要为大家说的就是利用PHP+MYSQL的方法来实现手机号码归属地的查询。网上也有很多方法,大多是通过一些提供在线接口的网站或是PHP+纯文本的方法来实现的。

如果只是查询单个手机号码,那推荐你用提供国内手机号码段归属地数据的网站接口来做,简单实现,也不浪费你服务器资源。比如MobileCodeWS就是不错的选择。

如果是同时或是循环查询多个手机号码,那还是建议你拥有一个自己的的手机号码数据库。正常情况下,只是满足一般查询的话,你不需要去购买专业版的手机号码数据库,增加无谓成本。我免费为你提供一个ACCESS数据库,包含17万多条数据,常用的130-139、150-159以及180-189开头手机号码段都在其中,你可以借助数据库工具轻松地将它转换成MYSQL或其它版本数据库。

进入正题,这两天,应老板要求,需要在PHP+MYSQL开发的一个管理系统中实现以下功能:

1)显示用户的电话号码(手机号或座机号)归属地,便于回访;

2)后台做一个手机号码段添加的功能,便于更新手机号码库。
PHP+MYSQL手机号码归属地查询实现方法

通过上面的介绍,我们已经有了自己的MYSQL数据表。这个表结构很简单:ID(序号),code(区号),num(手机号码段),cardtype(手机卡类型),city(手机号码归属地)。注意,这个表存储数据量很大,应当根据你的sql查询语句,建立合适的索引字段,以提高查询效率。

1)获取手机号码归属地,我们只需要通过判断手机号码段归属地即可。主要通过以下函数实现,其中GetAlabNum、cn_substr、str_replace都是字符串操作函数,$dsql是数据库操作类。

function GetTelphone($tel)
{
 global $city,$dsql;
 if(isset($tel)) $tel = GetAlabNum(trim($tel));//GetAlabNum函数用于替换全角数字,将可能存在的非法手机号码转换为数字;trim去除多余空格。
 else return false;
 if(strlen($tel) < 7) return false;
 $tel = cn_substr($tel, 11);//先截取11个字符,防止是多个手机号码
 //if(!is_numeric($tel)) return false;
 if(cn_substr($tel, 1) == "0")//判断手机号码是否以0开头,这种情况可能会是座机号以0开头
 {
  if(cn_substr($tel, 2) == "01" || cn_substr($tel, 2) == "02") $tel = cn_substr($tel, 3);//3位区号
  else $tel = cn_substr($tel, 4);
  $row = $dsql->GetOne(" Select code,city as dd from `#@__tel` where code='$tel' group by code ");
 }
 else
 {
  $tel = cn_substr($tel, 7);
  $row = $dsql->GetOne(" Select num,city as dd from `#@__tel` where num='$tel' ");
 }
 $city = $row['dd'];
 if($city)
 {
  $city = str_replace("省", "-", $city);
  $city = str_replace("市", "", $city);
  $city = "<br /><font color=\"green\">[".$city."]</font>";
  return $city;
 }
}

2)添加新的手机号码段功能

这个功能就很简单了吧,只是一个简单的表单提交功能,PHP学习最基本的留言簿就是这么做的,随便DOWN一个来参考下即可,就不详细说明了。

以上就是PHP+MYSQL实现手机号码归属地查询的详细办法,有什么不对的地方欢迎补充、交流。

目前留言:3   其中:访客:3   博主:0

  1. 天下第一网

    才17万个地址,有点太少了吧,现在都几个亿用户了。。。。。。。。。。

  2. 小拼

    天下第一网 :

    才17万个地址,有点太少了吧,现在都几个亿用户了。。。。。。。。。。

    嗯,这数据库存储的是手机号码段,一个段也包含很多号码的。还有这是免费的,相比成百上千的收费的来说,很划算了阿:)

  3. 笨蛋一个

    确定是比较划算的了,现在最新的数据也就是230000左右,售价都在几百,感谢楼主无私贡献

评论加载中...

给我留言

图片 表情