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

本文来介绍一下关于手机号码归属地实现方法,我们可以利用api接口与mysql+php来实例有需要的同学看看

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

最新手机号码数据库下载地址:http://xiazai.jb51.net/201209/yuanma/phone-number-database-jb51.rar

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 = "[".$city."]";

return $city;

}

}

api实现方法,这里不需要自己的数据库但有限制了

主要使用curl实现,需要开启php对curl的支持。

header(“Content-Type:text/html;charset=utf-8″);

if (isset($_GET['number'])) {

$url = ‘http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo';

$number = $_GET['number'];

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, “mobileCode={$number}&userId=”);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$data = curl_exec($ch);

curl_close($ch);

$data = simplexml_load_string($data);

if (strpos($data, ‘http://')) {

echo ‘手机号码格式错误!';

} else {

echo $data;

}

}

?>

手机号码:

与php mysql手机号码归属地查询这个会慢很多,毕竟要通过第三方法数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值