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

2015-01-24信息快讯网

本文来介绍一下关于手机号码归属地实现方法,我们可以利用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手机号码归属地查询这个会慢很多,毕竟要通过第三方法数据。
关于PHPDocument 代码注释规范的总结
解析php中获取系统信息的方法
解析PHP对现有搜索引擎的调用
解析如何修改phpmyadmin中的默认登陆超时时间
关于Sphinx创建全文检索的索引介绍
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
关于php操作mysql执行数据库查询的一些常用操作汇总
php 备份数据库代码(生成word,excel,json,xml,sql)
解析MySql与Java的时间类型
解析mysql 表中的碎片产生原因以及清理
解析PHP中常见的mongodb查询操作
深入理解用mysql_fetch_row()以数组的形式返回查询结果
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
Mysql中分页查询的两个解决方法比较
php判断终端是手机还是电脑访问网站的思路及代码
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
php验证手机号码(支持归属地查询及编码为UTF8)
php循环语句 for()与foreach()用法区别介绍
PHP获取用户的浏览器与操作系统信息的代码
PHP中根据IP地址判断城市实现城市切换或跳转代码
PHP中“简单工厂模式”实例代码讲解
通过php快速统计某个数据库中每张表的数据量
比较discuz和ecshop的截取字符串函数php版
Windows下部署Apache+PHP+MySQL运行环境实战
PHP实现手机归属地查询API接口实现代码
用PHP+MySQL搭建聊天室功能实例代码
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
全新的PDO数据库操作类php版(仅适用Mysql)
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
PHP版国家代码、缩写查询函数代码
pdo中使用参数化查询sql
PHP查询MySQL大量数据的时候内存占用分析
世界上最贵的手机号价值千万
©2014-2024 dbsqp.com