php微信地理位置,PHP微信开发 获取用户地理位置信息-经纬度

这篇博客介绍了如何在PHP中使用微信开发接口获取用户的地理位置信息,包括经纬度。文章指出,该接口要求用户的GPS始终开启,否则无法获取位置,因此其实际应用可能受限。代码示例展示了如何解析接收到的XML数据并记录日志。
摘要由CSDN通过智能技术生成

PHP微信开发 获取用户地理位置信息-经纬度

6cd5e4fd49658da7be73f2e8e3760c00.png

2年前

阅读 3823

评论 0

喜欢 0

```php

/*

+----------------------------------------------------------------------

+ Title : PHP微信开发 获取用户地理位置信息-经纬度

+ Author : 小黄牛

+ Version : 无

+ Initial-Time : 2016-10-28 16:41:00

+ Last-time : 2016-10-28 16:41:00 + 小黄牛

+ Desc : 这个接口比较坑,要求手机一直开着GPS,不然就获取不到,所以这个接口意义应该不大

+----------------------------------------------------------------------

*/

# 实例化示例类

$wechatObj = new wechatCallbackapiTest();

# 由于数字认证已经通过,valid()与checkSignature()方法删除掉,没有作用了

# 只需要留下responseMsg方法,作为回调方法

$wechatObj->responseMsg();

class wechatCallbackapiTest {

public function responseMsg() {

# 获得数据包的信息

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

# 如果数据包内的信息不为空

if (!empty($postStr)){

# XML文件的解析依赖libxml库,libxml_disable_entity_loader函数,是为了安全性,防止入侵者通过协议注入XML向服务器发起攻击

libxml_disable_entity_loader(true);

# 把XML编译成一个Class

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

# rx_type : 请求类型

$rx_type = trim($postObj->MsgType);

# rx_event : 操作的事件

$rx_event = $postObj->Event;

switch ($rx_event){

# 地理位置事件消息 - 大写

case 'LOCATION':

# 调用日志记录-方便出错则查看

$this->Error_Log(array(

'纬度' => $postObj->Latitude,

'经度' => $postObj->Longitude,

'精度' => $postObj->Precision

),false);

break;

}

}

}

/**

* @Title : 记录错误信息与查看部分信息

* @Author : 小黄牛

* @param array : $Arr_Title 一个一维数组自定义内容

* @param bool : $Arr_Error 是否插入系统错误信息

* @param string : $File 日志名

* @return : 无

*/

private function Error_Log($Arr_Title,$Arr_Error=false,$File='Error_log.log'){

# 不是数组中断程序

if (!is_array($Arr_Title)) {return false;}

# 定义一个空的变量,用于存放日志TXT实体

$Error_TXT = "自定义信息如下:rn";

# 解析Arr_Title 自定义日志内容

foreach ($Arr_Title as $key=>$val){

$Error_TXT .= $key.':'.$val."rn";

}

# 判断系统错误显示是否开启

if ($Arr_Error === true) {

# 获取刚发生的错误信息,并返回数组,无错返回null

$Arr_Error = error_get_last();

# 不为空则执行错误解析

if (isset($Arr_Error)) {

$Error_TXT .= "系统错误信息如下:rn";

# 解析$Arr_Errore 系统错误信息

foreach ($Arr_Title as $key=>$val){

$Error_TXT .= $key.':'.$val."rn";

}

}

}

# 最后再写入两个换行符,以便追加查看

$Error_TXT .= "rnrn";

# 最后写入日志

error_log($Error_TXT,3,$File);

}

}

```

© 著作权归作者所有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值