/**
* 手机号码归属地查询
* @param $tel
* @return string
*/
function getLocation($tel)
{
// 过滤参数
if ( !isPhoneNumber($tel) ) return ['code'=>200,'status'=>false,'msg'=>'Cell phone number error!'];
// 请求地址
$url = 'http://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel='.$tel;
// 发起请求
//$res = file_get_contents($url);
$res = curlRequest($url,'','GET');
if ( $res['code'] !== 200 ) return ['code'=>$res['code'],'status'=>false,'msg'=>$res['responseHeader']['msg']];// 判断请求是否成功
$data = $res['response'][$tel];// 接收返回值
if ( !$data ) return ['code'=>200,'status'=>false,'msg'=>'API Exception!'];// 返回值为空
$response['province'] = $data['detail']['province']; // 归属地
$response['city'] = $data['detail']['area'][0]['city']; // 城市
$response['service'] = $data['detail']['operator']; // 运行商
$response['fullname'] = $data['location']; // 运行商全称
return ['code'=>200,'status'=>true,'data'=>$response];
}
/**
* 手机号码格式验证
* @param $tel
* @return bool
*/
function isPhoneNumber($tel)//手机号码正则表达试
{
return (preg_match("/0?(13|14|15|17|18|19)[0-9]{9}/",$tel))?true:false;
}
/**
* 发起CURL请求
* @param string $url 请求地址
* @param string $data 请求数据
* @param string $method 请求方式
* @return array 一维数组
*/
function curlRequest($url,$data = '',$method = 'POST')
{
$ch = curl_init(); //初始化CURL句柄
curl_setopt($ch, CURLOPT_URL, $url); //设置请求的URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //设为TRUE把curl_exec()结果转化为字串,而s不是直接输出
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); //设置请求方式
curl_setopt($ch,CURLOPT_HTTPHEADER,array("X-HTTP-Method-Override: $method"));//设置HTTP头信息
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//设置提交的字符串
$document = curl_exec($ch);//执行预定义的CURL
$code = curl_getinfo($ch,CURLINFO_HTTP_CODE); //获取HTTP请求状态码~
curl_close($ch);
$document = json_decode(removeBOM($document),true);
$document['code'] = $code;
return $document;
}
/**
* 检测并移除 BOM 头
* @param string $str 字符串
* @return string 去除BOM以后的字符串
*/
function removeBOM($str = '')
{
if (substr($str, 0,3) == pack("CCC",0xef,0xbb,0xbf)) {
$str = substr($str, 3);
}
return $str;
}
echo "<pre>";
var_dump( getLocation('18888888888') );exit();
相关推荐
手机号码归属地对照表
手机号码归属地对照表,更新自2018年10月17号。SQL文件格式,可直接导入数据库。
解析 json 字符串
// 解析 json String json = "{'status':200,'message':'查询成功','data':[{'id':1,'name':'name1','describe':'第一条数据'}]}"; JSONObject json_ = JSONObject.fromObject(json); Stri...
手机号码归属地
手机号码归属地数据库,2019-8月更新。总计录数:428971 数据格式为dat,这是完整的java解析代码。
java 接口 返回值_java api返回值的标准化详解
api返回值的标准化例如{"status":200,"message":"操作成功","data":"{\"id\":1,\"name\":\"张三\"}"}封装返回对象对象被封装在base.util.ResponseUtils类型下,返回值是标准的ResponseEntity对象,返回体进行了二次封装,主要有status,messsage和data组成,返回方法有ok和okMessage,如果真...
2016手机号码归属地数据库
7位的号段库,不是11位号码库 全国手机号码归属地数据库2016年1月327665条 本数据库含有最全手机号段数据: 电信:133、153、177(新)、180、181、189 移动:134、135、136、137、138、139、150、151、152、157、158、159、178(新)、182、183、184、187、188 联通:130、131、132、155、156、175(新)、176(新)、185、186 数据卡:145、147 其他:170(新) 是文本格式,可用直接用Navicat导入mysql数据库32万条
【全解析 | PTA】浙大版《Python 程序设计》题目集-第一章
Python浙大版PTA题解
手机验证码验证
手机验证的方式与邮箱验证的方式类似,只是发送的数据不同,依赖的jar包也是不同的,话不多说(我也讲不出来多好的东西,哈哈!),给你们上货 短信发送的一个接口 package com.kgc.service.userservice; import com.kgc.dto.Dto; import com.kgc.pojo.DmUser; import org.springframework.web...
半导体设备上位机开发:我的经验与新人指导
半导体设备上位机开发是一项复杂而富有挑战性的工作,需要扎实的技术基础和丰富的经验。如果你对半导体设备上位机开发感兴趣,欢迎随时与我交流,我会尽力帮助你!
QQ状态查询程序
前几天在网上看到的方法,打开地址http://wpa.qq.com/pa?p=1:88888:4能看到88888的在线状态。刚才把它弄成个小程序,自己编程特烂,希望高手指出错误。开始用IDHTTP组件,不知道为啥老出错,所以改用CLIENTSOCKET组件了。unit UtMain;interfaceuses Windows, Messages, SysUtils, Variants, Clas
CPG控制网络入门
从线性变换开始推导
光耦CTR参数实战:如何避免误触发与功耗陷阱(附计算公式)
本文深入解析光耦CTR参数在电路设计中的关键作用,探讨如何平衡误触发风险与功耗表现。通过TLP521、PC817等常见型号的实测数据对比,提供不同工作状态下的选型策略和计算公式,帮助工程师优化设计,提升系统稳定性和能效。
百度 手机号码归属地API JSON多级解析
http://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel=13888888888 返回: {"response":{"13888888888":{"detail":{"area":[{"city":"昆明"}],"province":"云南","type":"domestic","operator":"移动"},"locatio...
5V转±12V无变压器双boost电路
最近有个新项目,需要±10V范围的模拟量输出(非隔离),对于5V以下供电的控制板而言单端输出绝对没问题,可现在需要有正负输出,是少不了正负电源的,因此准备设计一个5V转±12V的电源,然后选择一个双向供电的运放,来实现单端模拟量信号向双向模拟量信号转换。 本文就来分享一下5V转±12V电源的设计。对于有类似双向电源需求的场合,大多使用变压器通过增加多个绕组来实现,而对于体积空间有要求的场合来讲,变压器实在是太大了,另外对于一些成熟的项目,变压器如果是已经设计好的,再额外增加绕组需要重新设计,费时费力。于是,
免费手机号码归属地API查询接口
返回:JSON 二、拍拍API API地址: http://virtual.paipai.com/extinfo/GetMobileProductInfo?mobile=15850781443&amount=10000&callname=getPhoneNumInfoExtCallback 参数: mobile:手机号码 callname:回调函数 amount:未知(必须) 返回:JSON 三、财付通API A
制造业信息化的现实困局与未来展望:从基础到数字化的挑战与机遇
随着全球科技的发展和市场竞争的加剧,制造业的转型升级成为企业必须面临的挑战。在信息化和数字化的浪潮下,许多企业试图通过技术创新来提升自身竞争力。然而,现实情况是,绝大部分制造业企业的基本信息化都尚未完成,更遑论复杂的数字化。那么,制造业在信息化进程中面对哪些阻碍?未来又该如何实现从基础信息化到数字化的转型?
【Vite+Vue3+TS】基于Vite+Vue3+TypeScript+ESLint+Prettier+Stylelint搭建项目(亲测超详细)
结合了很多项目和文章,总结一篇项目构建的笔记。 温馨提示:文章末尾记录了我在搭建项目过程中,遇到的一些问题和解决办法 ~
免费手机号码归属地查询:输入 11 位号码标出城市
location-to-phone-number 是一个免费的手机号码归属地查询工具:输入 11 位手机号,它返回号码属于哪个省、哪个市、是哪家运营商,再在地图上标出对应位置。适合想快速弄清陌生号码来自哪座城市的人,不用注册,也不用配置密钥。 ## 🗺️ 现场演示:输入号码查城市,看它落在地图哪里 拿一条真实查询走一遍流程。把要查的 11 位手机号填进左上角输入框,点 Locate 按钮。页
扩散模型实战:从零开始训练手写数字生成模型
手写数字的数据集是绝大部分炼丹师的深度学习初恋,这篇博客以代码为主,手把手带读者搭建一个基于扩散模型的手写数字生成模型,非常适合刚接触扩散模型的初学者学习。
免费手机号码归属地查询接口
免费手机号码归属地查询接口 接口地址:http://101.201.223.138:9188/api/freeif/mobileArea 访问方式 GET 参数 说明 appkey 用户标识 mobile 手机号码 11位 appkey :0aa2dc10-ada0-11eb-8e4d-7429af540200 接口返回值 格式:json { “msg”: “成功”, “code”: 1, “result”: { “prov”: “北京”, “city”: “北京”, “cardty
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
1173



被折叠的 条评论
为什么被折叠?



