首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 實現手機歸屬地查詢 API 接口(基於 WebXML 服務)

     編輯:PHP 綜合知識

功能簡介

通過調用 WebXML 提供的免費手機歸屬地查詢 WebService,實現一個簡單的手機號碼歸屬地查詢接口。支持 GET 請求傳遞手機號,返回歸屬地信息或錯誤提示。

完整代碼實現

<?php
header("Content-Type: text/html; charset=utf-8");

if (isset($_GET['number'])) {
    $url = 'https://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);

    $xml = simplexml_load_string($data);
    // 返回結果中若包含 https:// 則表示格式錯誤
    if (strpos($xml, 'https://') !== false) {
        echo '手機號碼格式錯誤!';
    } else {
        echo $xml;
    }
}
?>

<form action="mobile.php" method="get">
    手機號碼: <input type="text" name="number" />
    <input type="submit" value="提交" />
</form>

關鍵點說明

  • CURL 發送 POST 請求:WebXML 接口要求 POST 方式提交 mobileCode 參數。
  • XML 解析:使用 simplexml_load_string() 解析返回的 XML 字符串。
  • 錯誤判斷:接口在號碼格式錯誤時返回包含 https:// 的字符串,據此判斷。
  • 編碼統一:文件保存為 UTF-8,並設置 header 輸出編碼,避免中文亂碼。

擴展建議

  1. 增加手機號格式正則驗證(如 /^1[3-9]\d{9}$/),減少無效請求。
  2. 加入緩存機制(Redis/Memcached),相同號碼 24 小時內不重複請求第三方接口。
  3. 封裝為類庫,支持多家服務商(如淘寶、百度 API)作為備選,提高可用性。
  4. 提供 JSON 格式輸出,方便前端 AJAX 調用。

示例調用

// 瀏覽器訪問
https://yourdomain.com/mobile.php?number=13800138000

// 返回示例(XML 文本)
手機號碼: 13800138000
歸屬地: 廣東 廣州 移動
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved