PHP实现手机号码归属地查询

原文: 点击打开链接


在网上找到一个是由手机在线提供的一个不错的简单实用的接口。



该网站提供的接口包括如下类型:


通过 WebService 调用获取数据
通过 HTTP Post/Get 获取 XML 格式的数据
通过 HTTP Post/Get 获取 JSON 格式的数据
通过 HTTP Post/Get 获取普通文本格式数据
通过 form 或 iframe 标签插入 Web 页面
通过 JavaScript 和 HTML 标签插入 Web 页面
通过 WebService 调用获取数据


Web Service 地址:http://api.showji.com/locating/Mobile.asmx


只含有一个对象:Mobile。其成员如下:


获取手机号码归属地信息
函数原型:


bool Query(string Mobile, out string Province, out string City, out string AreaCode, out
string PostCode, out string Corp, out string Card);
参数:


Mobile: 待查询的手机号码。
Province: 返回手机号码归属地的省份。
City: 返回手机号码归属地的城市。
AreaCode: 返回手机号码归属地的区号。
PostCode: 返回手机号码归属地的邮编。
Corp: 返回所属运营商。
Card: 返回所属卡类型。
返回值:


返回 bool 值,表示用户输入的号码是否可识别。
获取当前服务状态
函数原型:


bool GetStatus();
返回值:


返回 bool 值,表示当前服务是否可用。


使用php开源的soap库直接调用即可,这个调用比较简单,在这里就不在多说,具体详细的介绍,可参考我的另一篇
博文:使用PHP SOAP库调用标准Webservice接口
通过 HTTP Post/Get 获取 XML/JSON/普通文本 格式的数据


调用接口形式:http://api.showji.com/locating/?m=$mobile&output=$type
参数说明:
$mobile:要查询的手机号码(可以全部11位号码,也可只输入前7位)。
$type:查询结果的数据格式类型,其值可为:xml, json或text三个值。
通过PHP来实现,可以采用curl的方式来获取数据进行展示,对于xml和json在实际中我们直接通过处理来获取数据。


程序实现如下:


<?php
$mobile ='13844033329';
$type = 'text';
$url = "http://api.showji.com/locating/?m=$mobile&output=$type";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$data = curl_exec($ch);
curl_close($ch);
//输出手机归属地相关信息
echo $data."\n";
//输出结果:
Mobile:13844033329
QueryResult:True
Province:吉林
City:长春
AreaCode:0431
PostCode:130000
Corp:中国移动
Card:GSM
?>
通过 form 或 iframe 标签插入 Web 页面


这种方式可以在您的网站中嵌入手机归属地查询程序,以便提供给用户使用,提升您的网站的用户黏性。


1.基于form提交的有两种形式,一种是直接在新窗口打开完整页面,另一个是打开小窗口,代码形式分别如下:


打开完整新窗口代码:


<form name="formLocating" action="http://api.showji.com/Locating/query.aspx" method="GET" target="_blank">
<input type="text" name="m" value="请输入手机号码" οnclick=this.value="" />
<input type="submit" value="查询" />
</form>
打开小窗口代码:


<form name="formLocating" action="http://api.showji.com/Locating/query.aspx" method="GET" target="Locating">
<input type="text" name="m" value="请输入手机号码" οnclick=this.value="" />
<input type="submit" value="查询" οnclick="window.open('','Locating','width=500,height=300,status=yes,toolbar=no,menubar=no,location=no');" />
</form>
2.使用iframe包含直接嵌入到网页中


<iframe name="frameLocating" src="http://api.showji.com/Locating/query.aspx" width="500" height="300" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"></iframe>
通过 JavaScript 和 HTML 标签插入 Web 页面


这种方式可以实现样式的任意定制,客户端仅需要包含一个 JavaScript 脚本和显示结果的 HTML 代码即可。并且,定制的页面支持来自 GET 方式的提交,从而本地可以定制多种查询情况。


页面 part1.htm,实现完整的查询页面:


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form οnsubmit="return query();">
 请输入手机号码:<input id="m" size="15" maxlength="15" />
 <input type="Submit" value="查询" id="btnQuery" />
</form>
<div id="panelError" style="display:none;height:100%;text-align:center">
 <span id="txtError" style="color:red">您输入的手机号码有误</span>
</div>


<div id="panelResult" style="display:none">


手机号码:<span id="txtMobile"></span><br/>




 所属省份:<span id="txtProvince"></span><br/>
 所属城市:<span id="txtCity"></span><br/>
 区  号:<span id="txtAreaCode"></span><br/>
 邮  编:<span id="txtPostCode"></span><br/>
 类  型:<span id="txtCard"></span><br/>


</div>
<div id="panelNotice" style="display:none; height:100%">
</div>
<script type="text/javascript" src="http://blog.163.com/lgh_2002/blog/http://api.showji.com/Locating/Query.js">
</script>
</body>
</html>


页面 part2.htm,简单的查询文本框,可提交查询至 part1.htm(如果要修改文件名,请确保其一致)。


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
 <form name="formLocating" action="part1.htm" method="GET">
  <input type="text" name="m" value="请输入手机号码" οnclick=this.value="" />
  <input type="submit" />
 </form>
</body>
</html>


页面 part2.htm 如果使用 POST 方式提交,必须满足以下条件:part1.htm 必须经服务器端脚本解析。例如使用




part1.asp 取代 part1.htm。同时,必须在引用 Query.js 前,增加如下代码:




<script type="text/javascript">
strMobile=“<%=Request("m")%>”;
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值