/**
* 手机号码归属地查询
* @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();
PHP获取手机号码归属地
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1. 必要的包(尽量使用最新版本) libgeocoding.jar libphonenumber.jar 可能需...
- 1. 项目框架结构 index.html 访问入口文件(view层) api.php处理入口请求、返回响应数据、前...
- 1、PHP根据身份证号码,获取性别。 2、PHP根据身份证号码,获取生日。 3、PHP根据身份证号码,计算年龄。 ...