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

 更新时间:2012年09月04日 23:14:09   作者:  
本文来介绍一下关于手机号码归属地实现方法,我们可以利用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 = "<br /><font color="green">[".$city."]</font>";
return $city;
}
}

api实现方法,这里不需要自己的数据库但有限制了
主要使用curl实现,需要开启php对curl的支持。
复制代码 代码如下:

<?php
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;
}
}
?>
<form action=”mobile.php” method=”get”>
手机号码: <input type=”text” name=”number” /> <input type=”submit” value=”提交” />
</form>

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

相关文章

  • 非常有用的9个PHP代码片段

    非常有用的9个PHP代码片段

    这篇文章主要为大家介绍了非常有用的9个PHP代码片段,在开发网站、app或博客时,代码片段可以真正地为你节省时间,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • php使用文本统计访问量的方法

    php使用文本统计访问量的方法

    这篇文章主要介绍了php使用文本统计访问量的方法,涉及php文本文件读写与数值运算的相关技巧,需要的朋友可以参考下
    2016-05-05
  • php session实现多级目录存放实现代码

    php session实现多级目录存放实现代码

    这篇文章主要介绍了php session实现多级目录存放实现代码,需要的朋友可以参考下
    2016-02-02
  • PHP树形结构tree类用法示例

    PHP树形结构tree类用法示例

    这篇文章主要介绍了PHP树形结构tree类用法,结合实例形式分析了php无限分类树tree.class.php的定义及使用相关操作技巧,需要的朋友可以参考下
    2019-02-02
  • PHP CURL与java http使用方法详解

    PHP CURL与java http使用方法详解

    这篇文章主要为大家详细介绍了PHP CURL与java http使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 实例讲解PHP表单

    实例讲解PHP表单

    这篇文章主要介绍了PHP表单相关知识,文中讲解非常细致,代码帮助大家更好的参考和学习,感兴趣的朋友可以了解下
    2020-06-06
  • php断点续传之如何分割合并文件

    php断点续传之如何分割合并文件

    这篇文章主要介绍了php断点续传之如何分割合并文件,需要的朋友可以参考下
    2014-03-03
  • mysql建立外键

    mysql建立外键

    mysql建立外键...
    2006-11-11
  • 浅析php中array_map和array_walk的使用对比

    浅析php中array_map和array_walk的使用对比

    这篇文章给大家先是详细的介绍了array_map()和array_walk()的语法、参数以及注意事项,而后又给大家详细的介绍了其中的关键点,文中介绍的很详细,相信会对大家的理解和学习很有帮助,有需要的朋友们可以参考借鉴,感兴趣的朋友们下面来一起学习学习吧。
    2016-11-11
  • PHP中基本HTTP认证技巧分析

    PHP中基本HTTP认证技巧分析

    这篇文章主要介绍了PHP中基本HTTP认证技巧,实例分析了HTTP身份验证的原理与实现方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03

最新评论