从来没有用过api,都不知道怎么获得api的数据,跟着demo,然后修改,终于实现了手机号码查询的功能,代码和说明很全,大家试试。

<?php
/**
* Created by jianqingwang
* User: Administrator
* Date: 2016/9/10 0010
* Time: 22:49
* 查询手机归属地
*/
header("Content-type: text/html; charset=utf-8");
//传入查询的电话
//$phoneNum=$_GET['phoneNum'];
$phoneNum='18807457777';
//查询电话号码归属地函数,大家可以直接拿来用
function checkPhone($phoneNum){
//下面开始百度的demo
$ch = curl_init();
//或者采用这种方式: $url = "http://apis.baidu.com/apistore/mobilenumber/mobilenumber?phone=$phoneNum";
$url = 'http://apis.baidu.com/apistore/mobilenumber/mobilenumber?phone='.$phoneNum;
$header = array(
'apikey:密匙账号',//这个是我的密匙账号,各位可以到百度官网申请
        //百度api官方http://apistore.baidu.com/astore/toolshttpproxy?apiId=usu9zw&isAworks=1
);
// 添加apikey到header
curl_setopt($ch, CURLOPT_HTTPHEADER , $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 执行HTTP请求
curl_setopt($ch , CURLOPT_URL , $url);
//百度api的demo结束
//对返回的数据进行转码,确保数据为utf-8
$data=iconv('GB2312','UTF-8', curl_exec($ch));
//对返回的数据转码,把json转为数组,后面的true如果没加上会变成对象,各位可以先打印输出下,看下它的结构
$res = json_decode(curl_exec($ch),true);
$phone=$res['retData']['phone'];
$prefix=$res['retData']['prefix'];
$supplier=$res['retData']['supplier'];
$province= $res['retData']['province'];
$city= $res['retData']['city'];
$suit=$res['retData']['suit'];
//把查询的数据转为数组返回
$checkData[0]=$phone;//查询的电话号码
$checkData[1]=$prefix;//卡的号段,可以存起来以后数据大了可以直接采用号段来查询电话归属地
$checkData[2]=$supplier;//卡的运营商,如中国移动
$checkData[3]=$province;//卡的归属省份
$checkData[4]=$city;//卡的归属城市
$checkData[5]=$suit;//卡的类型,比如:157卡
return $checkData;//返回查询后的数据,为了方便返回多个数据,采用数组 }
$myPhoneData=checkPhone($phoneNum);
echo $myPhoneData[0]."归属号段".$myPhoneData[1]."运营商".$myPhoneData[2]."归属省份".$myPhoneData[3]."归属城市".$myPhoneData[4]."卡的类型".$myPhoneData[5];;//输出查询结果
?>

效果展示:

有时间我会考虑写个带数据库的版本。

PHP学习笔记:利用百度api实现手机归属地查询的更多相关文章

  1. 利用百度API Store接口进行火车票查询

    火车票查询 项目源码下载链接: Github:https://github.com/VincentWYJ/TrainTicketQuery 博客文件:http://files.cnblogs.com/ ...

  2. Hadoop学习笔记—5.自定义类型处理手机上网日志

    转载自http://www.cnblogs.com/edisonchou/p/4288737.html Hadoop学习笔记—5.自定义类型处理手机上网日志 一.测试数据:手机上网日志 1.1 关于这 ...

  3. golang学习笔记10 beego api 用jwt验证auth2 token 获取解码信息

    golang学习笔记10 beego api 用jwt验证auth2 token 获取解码信息 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放 ...

  4. 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内。以及两点间的测距功能

    权声明:本文为博主原创文章,未经博主允许不得转载. 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内.以及两点间的测距功能. 绘制多边形(蓝色) ...

  5. Objective-C学习笔记 利用协议实现回调函数

    来源:http://mobile.51cto.com/iphone-278354.htm Objective-C学习笔记 利用协议实现回调函数是本文要介绍的内容,主要是实现一个显示文字为测试的视图,然 ...

  6. ZooKeeper学习笔记二:API基本使用

    Grey ZooKeeper学习笔记二:API基本使用 准备工作 搭建一个zk集群,参考ZooKeeper学习笔记一:集群搭建. 确保项目可以访问集群的每个节点 新建一个基于jdk1.8的maven项 ...

  7. Flink学习笔记:Flink API 通用基本概念

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...

  8. flink学习笔记:DataSream API

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...

  9. 【EF6学习笔记】(三)排序、过滤查询及分页

    本篇原文地址:Sorting, Filtering, and Paging 说明:学习笔记参考原文中的流程,为了增加实际操作性,并能够深入理解,部分地方根据实际情况做了一些调整:并且根据自己的理解做了 ...

随机推荐

  1. 一次流量稍高导致web项目慢的问题&解决

    项目上线后,用户越来越多,有一天出现一个issue:用户访问特别慢. 首先介绍下架构: haproxy/Nginx / \ node1 node2 | | redis redis(slave) | | ...

  2. 在 sublime text 3 中添加 Emmet (ZenCoding)

    安装 Emmet 插件: 启动 Sublime Text 3,选择 Preferences>Package Control,点选 Package Control:Install Package: ...

  3. JS - Object and Property的删除用法

    在JS中,Object和Property的删除用法: var myObject = {name:'jimmy', age:12, height:123} delete myObject["j ...

  4. Java Bytecode Instructions List

    monic Opcode(in hex) Other bytes Stack[before]→[after] Description aaload 32   arrayref, index → val ...

  5. Xcode 安装插件手误选择了「Skip Bundle」后需要重新允许「Load Bundle」的解决方法

    在 Mac 终端输入命令: # 这里的7.1代表 Xcode 的版本号 defaults delete com.apple.dt.Xcode DVTPlugInManagerNonApplePlugI ...

  6. JavaScript ---属性

    获取属性 可以通过点(.)或方挂号([])运算符来获取属性的值. 对于点(.)来说,右侧必须是一个以属性名称命名的简单标识符.对于[]来说,方挂号内必须是一个计算结果为字符串的表达式. var aut ...

  7. BZOJ 1251 序列终结者(Splay)

    题目大意 网上有许多题,就是给定一个序列,要你支持几种操作:A.B.C.D.一看另一道题,又是一个序列要支持几种操作:D.C.B.A.尤其是我们这里的某人,出模拟试题,居然还出了一道这样的,真是没技术 ...

  8. windows环境下配置php和redis

    Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. 一.Window 下安装 下载地址:https://github.com/dmajkic/redis/downl ...

  9. 如何准备PMP考试?

    东西在精,而不在多.话不多说,干货如下: 1.参加培训,不要持续时间太长,通常情况下3个月时间足够了:许多和我一起参加培训的学员,有时候准备6个月时间,反而没有3个月冲刺的时间考试结果好. 2.培训老 ...

  10. HANA Studio打开系统显示Secure storage is locked

    之前一直用着好好的,今天打开HANA Studio突然发现一个系统都不在了: 提示:‘Secure storage is locked’ 我点旁边的Unlocked没有任何反应,右键也没有功能了.如下 ...