background image

PHP 手机号码归属地查询代码(API 接口 mysql)

本文来介绍一下关于手机号码归属地实现方法,我们可以利用

api 接口与 mysql+php 来实例

有需要的同学看看
首先我们介绍使用自己的数据库查询多个手机号码,那还是建议你拥有一个自己的的手机
号码数据库。正常情况下,只是满足一般查询的话,你不需要去购买专业版的手机号码数据
库,增加无谓成本。我免费为你提供一个

ACCESS 数据库,包含 17 万多条数据,常用的

130-139、150-159 以及 180-189 开头手机号码段都在其中,你可以借助数据库工具轻松地将
它转换成

MYSQL 或其它版本数据库 

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' ");