激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP實現查詢手機歸屬地的方法詳解

PHP實現查詢手機歸屬地的方法詳解

2021-05-13 18:28Cizel PHP教程

最近通過在網上面的學習,完成了 PHP 實現手機歸屬地查詢的功能。所以下面這篇文章主要給大家介紹了利用PHP實現查詢手機歸屬地的方法,文中給出了詳細的代碼示例,需要的朋友可以參考借鑒,下面來一起看看吧。

本文介紹的是PHP實現查詢手機歸屬地的方法,首先來看看手機歸屬地查詢的類圖:

PHP實現查詢手機歸屬地的方法詳解

后臺

MobileQuery類調用:

  • \libs\HttpRquest
  • \libs\ImRedis (未使用)

Api類調用 MobileQuery 類的 Query 方法來返回 $response 的數據,并進行加工。

前臺

base.js 使用 .ajax 請求,并將請求后的數據填充到index.html 中。

核心代碼展示

AutoLoad.php

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
/**
 * TODO Auto-generated comment.
 */
class AutoLoad {
 
 /**
  * TODO Auto-generated comment.
  */
  public static function load($className)
 {
  //命名空間的反斜杠替代
  $filename = sprintf('%s.php',str_replace('\\','/',$className));
  require_once($filename);
 }
}
spl_autoload_register(['AutoLoad','load']);

Api.php

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
/**
 * TODO Auto-generated comment.
 */
require_once "AutoLoad.php";
use \app\MobileQuery;
class Api{
 private $response;
 private $params;
 private $phone;
 public function __construct(){
  $this->params = $_POST;
  if(isset($this->params['tel'])) {
   $this->phone = $this->params['tel'];
  }else {
   $this->phone = '17706436202';
  }
  $this->queryResponse($this->phone);
 }
 public function queryResponse($phone) {
  $this->response = MobileQuery::query($phone);
  if(is_array($this->response) and isset($this->response['province'])) {
   $this->response['phone'] = $phone;
   $this->response['code'] = 200;
  } else {
   $this->response['phone'] = $phone;
   $this->response['msg'] = '手機號碼錯誤';
  }
 }
 public function getResponse()
 {
  return json_encode($this->response);
 }
}
$Api = new Api();
echo $Api->getResponse();

app/MobileQuery.php

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
/**
 * TODO Auto-generated comment.
 */
namespace app;
 
use libs\HttpRequest;
use libs\ImRedis;
 
class MobileQuery {
 /**
  * TODO Auto-generated comment.
  */
 const PHONE_API= 'https://tcc.taobao.com/cc/json/mobile_tel_segment.htm';
 /**
  * TODO Auto-generated comment.
  */
 const QUERY_PHONE = 'PHONE:INFO:';
 
 public static function query($phone)
 {
  $phoneData = null;
  if(self::varifyPhone($phone)){
   $response = HttpRequest::request(self::PHONE_API, ['tel'=>$phone]);
   $phoneData = self::formatData($response);
   $phoneData['msg'] ='數據由Cizel的博客提供';
  }
  return $phoneData;
 }
 
 public static function formatData($data)
 {
  $ret = null;
  if(!empty($data)){
   preg_match_all("/(\w+):'([^']+)/",$data,$res);
   $items = array_combine($res[1],$res[2]);
   foreach ($items as $itemKey => $itemVal) {
    $ret[$itemKey] = iconv('GB2312','UTF-8',$itemVal);
   }
  }
  return $ret;
 }
 
 public static function varifyPhone($phone)
 {
  if(preg_match("/^1[34578]{1}\d{9}/",$phone)) {
   return true;
  } else {
   return false;
  }
 }
}

lib/HttpRequest.php

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
/**
 * TODO Auto-generated comment.
 */
namespace libs;
 
class HttpRequest {
 
 /**
  * TODO Auto-generated comment.
  */
 public static function request($url, $params =[], $method='GET')
 {
  $ret = null;
  if(preg_match("/^(http|https)\:\/\/(\w+\.\w+\.\w+)/",$url)) {
   $method = strtoupper($method);
   if($method == 'POST') {
    exit('nothing to do.');
   } else {
    if($params) {
      if(strripos('?',$url)) {
      $url = $url . '&' . http_build_query($params);
      } else {
      $url = $url . '?' . http_build_query($params);
      }
    }
    $ret = file_get_contents($url);
   }
  }
  return $ret;
 }
}

statis/js/base.js

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
* @Author: Cizel
* @Date: 2016-04-11 16:53:52
* @Last Modified by: Cizel
* @Last Modified time: 2016-04-11 17:22:32
*/
 
$(document).ready(function(){
 $('#query').click(function(){
  var phone = $('#phone_num').val();
  //alert(phone);
  if (phone.length == 11) {
   Cizel.GLOBAL.AJAX('Api.php','post',{'tel':phone},'json',Cizel.APPS.QUERYPHONE.AJAXCALLBACK);
  }
 });
 });
 
var Cizel = Cizel || {};
Cizel.GLOBAL = {};
Cizel.APPS = {};
 
Cizel.APPS.QUERYPHONE = {};
Cizel.APPS.QUERYPHONE.AJAXCALLBACK = function(data){
 if(data.code == 200){
  Cizel.APPS.QUERYPHONE.SHOWINFO();
  $('#phoneNumber').text(data.phone);
  $('#phoneProvince').text(data.province);
  $('#phoneCatName').text(data.catName);
  $('#phoneMsg').text(data.msg);
 } else {
  Cizel.APPS.QUERYPHONE.HIDEINFO();
 }
};
Cizel.APPS.QUERYPHONE.SHOWINFO = function(){
 $('#phoneInfo').show();
}
Cizel.APPS.QUERYPHONE.HIDEINFO = function(){
 $('#phoneInfo').hide();
}
 
Cizel.GLOBAL.AJAX = function(url, method, params,dataType,callBack)
{
 $.ajax({
  url: url,
  type: method,
  data: params,
  dataType: dataType,
  success:callBack,
  error:function(){
   alert('請求異常');
  }
 
 });
};

感悟

通過完成這個實例,感覺自己對 PHP 面向對象的編寫有了新的理解,同時 JavaScript 的編寫能力需要加強。

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:http://www.cizel.cn/archives/query_phone.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: av成人在线电影 | avav在线播放 | 性爱在线免费视频 | 久久久久久久一区二区 | 欧美一级毛片免费观看 | 国产91免费看 | 亚洲极色 | 亚洲视屏在线观看 | 黄色影院av| 久久久一区二区三区四区 | 精品黑人一区二区三区国语馆 | 欧美一区二区三区久久精品视 | 久久国产精品99国产 | 最新一区二区三区 | 久久精品亚洲一区二区三区观看模式 | 九九综合九九 | 99国内精品视频 | 亚洲欧美日韩精品久久 | 欧美特一级 | 在线天堂资源 | 亚洲福利在线观看视频 | 在线一级片 | 国产精品久久久久久一区二区三区 | 久草中文网 | 在线免费观看日韩视频 | 亚洲第五色综合网 | 久久久久女人精品毛片九一 | 色污视频| 欧美性受xxx黑人xyx性爽 | 国产精品久久久免费观看 | 黄a大片| 中文字幕精品一二三四五六七八 | 在线观看第一区 | 舌头伸进添的我好爽高潮网站 | 久久久久久久久久网站 | 国产高潮好爽好大受不了了 | 成人免费观看在线 | av噜噜在线| 亚洲国产中文字幕 | 日本不卡一区二区三区在线观看 | 播色网 |