PHP實現手機號碼歸屬地查詢

在網上找到一個是由手機在線提供的一個不錯的簡單實用的接口。

該網站提供的接口包括如下類型:

  1. 通過 WebService 調用獲取數據
  2. 通過 HTTP Post/Get 獲取 XML 格式的數據
  3. 通過 HTTP Post/Get 獲取 JSON 格式的數據
  4. 通過 HTTP Post/Get 獲取普通文本格式數據
  5. 通過 form 或 iframe 標籤插入 Web 頁面
  6. 通過 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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章