首先,在function.php方法文件中封装一个获取header头文件的方法。

if (!function_exists('getallheaders')) {
  function getallheaders() {
    $headers = array();
    foreach ($_SERVER as $name => $value) {
      if (substr($name, 0, 5) == 'HTTP_') {
        $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
      }
    }
    return $headers;
  }
}

然后,在相应控制器中调用该方法获取数据,先检查session中有没有位置信息。

if(!$_SESSION['MyLocation'])
{
  //获取定位坐标
  $location = getallheaders();
  $this->get_location($location);  //调用封装的方法
}

最后,封装一个方法,用来请求百度接口返回具体位置信息,并存到session中。

public function get_location($location)
{
  $lat  = $location['Latitude'];
  $lng = $location['Longitude'];

  if($lat && $lng)
  {
    $url = 'http://api.map.baidu.com/geocoder/v2/?ak=5BFNbSgnVF5g2O72NpvTDxFm&location=' . $lat . ',' . $lng . '&output=json&pois=1';
    $html = json_decode(file_get_contents($url),true);

    if($html)
    {
      $myLocation = array(
        'city'   => $html['result']['addressComponent']['city'],
        'addr' =>  isset($html['result']['addressComponent']['street']) ? $html['result']['addressComponent']['street'] : $html['result']['formatted_address'],
        'lng'    => $html['result']['location']['lng'],
        'lat'     => $html['result']['location']['lat'],
      );

      $_SESSION['MyLocation'] = $myLocation;
    }
  }
}

来源:https://www.cnblogs.com/shenzikun1314/p/7467119.html

转载于:https://www.cnblogs.com/jdwang-admin/p/7866330.html

php获取ios或android通过文件头(header)传过来的坐标,通过百度接口获取具体城市和地址,并存入到session中...相关推荐

  1. 【Android RTMP】RTMP 数据格式 ( FLV 视频格式分析 | 文件头 Header 分析 | 标签 Tag 分析 | 视频标签 Tag 数据分析 )

    文章目录 安卓直播推流专栏博客总结 一. RTMP 格式解析 二. 文件头 Header 分析 三. 标签 Tag 分析 四. 视频标签 Tag 数据分析 安卓直播推流专栏博客总结 Android R ...

  2. php调用百度接口获取经纬度,利用百度API(js),通过地址获取经纬度的注意事项...

    网上给的很多答案都是这种: http://api.map.baidu.com/geocoder?address=地址&output=输出格式类型&key=用户密钥&city=城 ...

  3. php 法定节假日接口,通过百度接口获取每一个月的工作和法定假日

    获取一个月中的法定假日和工作日 https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=2020101&ie=utf8& ...

  4. java 判断文件类型(根据文件头)

    后缀判断的隐患: 对于判断前端(或网络)发送过来文件的类型,有些同学第一个想到的可能就是:根据其后缀名进行格式的判断... 正常情况下,是可以这样做.但实际上,任何文件的后缀都可以随意命名,因此仅通过 ...

  5. clamav的病毒库文件的文件头的信息说明(clamav版本号等)

    Author : Samson Date : 01/04/2022 在开源病毒检测工具clamav中,是通过对病毒库中的病毒特征值来进行对比的,病毒库文件存放于/var/lib/clamav目录下,主 ...

  6. 【Android RTMP】RTMPDump 推流过程 ( 独立线程推流 | 创建推流器 | 初始化操作 | 设置推流地址 | 启用写出 | 连接 RTMP 服务器 | 发送 RTMP 数据包 )

    文章目录 安卓直播推流专栏博客总结 一. Java 层传入的 RTMP 推流地址处理 二. RTMPDump 推流线程 三. 创建 RTMP 对象 四. 初始化 RTMP 对象 五. 设置 RTMP ...

  7. php接受微信公众xml,微信,问题。微信公众平台接口获取用户发送的地理位置xml...

    我要实现的功能就是,当用户向我的公众平台发送一个当前位置,我要在卫星API中获取这个位置的经度纬度(x,y)然后通过这个经纬度接百度地图接口查询这个位置附近的饭店有哪些. 说白了,就是食神摇摇的那个功 ...

  8. 微信小程序-从相册获取图片,视频 使用相机拍照,录像上传+服务器(nodejs版)接收

    在本文 微信小程序-从相册获取图片 使用相机拍照 本地图片上传之前需要看看 微信小程序-获取用户session_key,openid,unionid - 后端为nodejs 代码封装是在上文添加的. ...

  9. 微信小程录制视频上传服务器,微信小程序-从相册获取图片,视频使用相机拍照,录像上传+服务器nodejs版接收-微信小程序视频上传功能-微信小程序视频上传...

    在本文微信小程序-从相册获取图片使用相机拍照本地图片上传之前需要看看微信小程序-获取用户session_key,openid,unionid-后端为nodejs代码封装是在上文添加的.本文知识点:1. ...

最新文章

  1. JS数据结构与算法_链表
  2. 这一波震撼的福利,你绝对想不到!!!
  3. 推导LookAt函数定义的视图矩阵
  4. 微课堂迎圣诞送福利 | 姬十三@你:我想和你相聚社区共度圣诞良宵,约么?
  5. 打开网页到我们看到页面显示的过程中发生了什么?
  6. android 是什么编码格式,在Android的JPG图像编码和解码
  7. 数据结构与算法(二):线性表、栈、树(二叉树,AVL树)、图
  8. Silverlight初级教程-概述
  9. Html加jq实现5星好评效果,关于jquery实现五星好评的方法
  10. 【python教程入门学习】Pygame下载和安装
  11. 《第一本无人驾驶技术书》扫描版PDF分享
  12. 常用DOS命令和Path环境变量的配置
  13. 谷歌Chrome浏览器无法安装插件的解决方法
  14. vue使用过滤器,文字超出显示省略号
  15. [创新实践] SLAM简介
  16. 带参函数简单案例-电灯 arduino玛克君
  17. 分布式任务调度:海量任务处理elastic-Job解决方案(一)
  18. 女博士计算机类,女博士年薪156万入职华为!网友:美貌与智慧并重
  19. idea打jar包(包括依赖包)
  20. android app设置首选网络方法

热门文章

  1. Codeforces Round #395 (Div. 2) - A
  2. string 类的实现
  3. HTTP 错误 404.3 – Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序...
  4. 自动化配置和部署工具--puppet(1)--什么是puppet
  5. Android之GPS定位详解
  6. RHEL在戴尔系统上p1p1 ......命名规则
  7. 网络工程师求职与职业规划
  8. BZOJ3173:[TJOI2013]最长上升子序列(Splay)
  9. Navicat是如何连接到服务器的呢
  10. phpstudy易犯的错误