php定位并且获取天气信息
1 /** 2 *获取天气预报信息 3 **/ 4 header("Content-type: text/html; charset=utf-8"); 5 class getWeather{ 6 private $ak; 7 8 public function __construct($ak){ 9 if($ak){ 10 $this->ak=$ak; 11 } else { 12 die('参数错误');exit; 13 } 14 15 } 16 17 /** 18 * 获取城市名称 19 * @param string $ip ip地址(必须为有效ip) 20 * return string $city 城市名称,如武汉 21 */ 22 public function getCity($ip=''){ 23 if(!$ip){ 24 $ip=$this->get_client_ip(); 25 } 26 $ak=$this->ak; 27 $content = file_get_contents("http://api.map.baidu.com/location/ip?ak=$ak&ip=$ip&coor=bd09ll"); 28 $json = json_decode($content,true); 29 if($json['status']==2){ 30 $city='武汉'; 31 }else{ 32 $address=$json['address']; 33 $cityarr=explode("|", $address); 34 $city=$cityarr['2'];//不带"市",如"武汉",而不是"武汉市" 35 } 36 return $city; 37 } 38 39 /** 40 * 获取天气预报信息 41 * @param string $city 城市名称,如武汉 42 * return array $data 天气信息 43 */ 44 public function weatherInfo($city=''){ 45 if(!$city){ 46 $city=$this->getCity(); 47 } 48 $host = "http://jisutqybmf.market.alicloudapi.com"; 49 $path = "/weather/query"; 50 $method = "GET"; 51 $appcode = "1215c3a301254ee79ca773ce9054f2ca";//阿里云appcode 52 $headers = array(); 53 array_push($headers, "Authorization:APPCODE " . $appcode); 54 $querys = "city=$city&citycode=citycode&cityid=cityid&ip=ip&location=location"; 55 $bodys = ""; 56 $url = $host . $path . "?" . $querys; 57 58 $curl = curl_init(); 59 curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); 60 curl_setopt($curl, CURLOPT_URL, $url); 61 curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); 62 curl_setopt($curl, CURLOPT_FAILONERROR, false); 63 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 64 curl_setopt($curl, CURLOPT_HEADER, false); 65 if (1 == strpos("$".$host, "https://")) 66 { 67 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 68 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); 69 } 70 $result=curl_exec($curl); 71 $data=json_decode($result,true); 72 return $data; 73 } 74 /** 75 *获取ip 76 */ 77 public function get_client_ip(){ 78 if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")){ 79 $ip = getenv("HTTP_CLIENT_IP"); 80 }else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")){ 81 $ip = getenv("HTTP_X_FORWARDED_FOR"); 82 }else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) 83 $ip = getenv("REMOTE_ADDR"); 84 else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) 85 $ip = $_SERVER['REMOTE_ADDR']; 86 else 87 $ip = "unknown"; 88 return($ip); 89 } 90 } 91 $baiduak='CiEwAVN72cVAuHLzNRAMjzpY';//百度地图api的密钥 92 $wea=new getWeather($baiduak); 93 $json=$wea->weatherInfo(); 94 print_r($json);exit;
转载于:https://www.cnblogs.com/wxfallstar/p/6826886.html
php定位并且获取天气信息相关推荐
- Android开发之和风天气篇:1、获取天气信息
TIME:2020年7月6日 :1.获取天气信息 和风天气API使用方法: step1 申请天气接口 step2 天气接口初始化 step3 选择服务模式 step4 通过URL请求数据 step5解 ...
- java解析xml实例——获取天气信息
获取xml并解析其中的数据: package getweather.xml;import java.io.IOException; import java.util.HashMap; import j ...
- STM32连接WIFI-ESP8266获取天气信息---STA模式运用
1. 小白入门STA模式运用 前面章节讲解了AP模式运用,这节来探索STA模式如何使用.何谓STA模式呢?通俗来讲就是我们的WIFI模块,连接到可用的无线网络(如手机发射出来的热点或者家里路由器的热点 ...
- python通过调用百度天气API接口获取天气信息
python调用百度接口,获取天气信息 需要到百度注册开发者账号,通过账号获取到每个账号私有的应用访问(AK) 使用此脚本还需要district_id.csv文档,在我资源中可以免费下载,也可在百度天 ...
- Android中基于心知天气API获取天气信息
Android中基于心知天气获取天气信息 JSON JSON简介 JSON对象 JSON数组 JSON解析 Android中获取天气 获取天气的流程 获取心知天气的API key 获取心知天气的API ...
- 【Unity3D日常开发】获取天气信息以及地方位置
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...
- 微信小程序使用百度api获取天气信息 —— 微信小程序教程系列(16)
之前已经介绍过,如何使用百度地图api来获取地理位置信息 微信小程序的百度地图获取地理位置 -- 微信小程序教程系列(15) 下面介绍使用百度api来获取天气信息. 1> 第一步:先到百度开放平 ...
- android调用在线天气服务,android通过google api获取天气信息示例
android通过google API获取天气信息 复制代码 代码如下: public class WeatherActivity extends Activity { private TextVie ...
- STM32使用ESP8266模块AT指令连接心知天气API获取天气信息
由于之前使用STM32单片机来开发一些物联网的小项目,接触到了WIFI模块ESP8266,所以写下来记录一下.本文主要介绍的是STM32通过发送AT指令集来控制ESP8266 WIFI模块连接WiFi ...
- android自动获取天气,android通过google api获取天气信息示例
android通过google API获取天气信息 public class WeatherActivity extends Activity { private TextView txCity; p ...
最新文章
- 运行mysql时,提示Table ‘performance_schema.session_variables’ doesn’t exist
- 硬计算、软计算与混合计算
- python竖排文本_Calibre 5.0:高亮、Python 3、竖排文字
- Matlab图像剪切,超出图像区域指定颜色填充
- 如何使用ABP进行软件开发之基础概览
- 2011考研数学概率论基础复习必备知识点
- LeetCode387-字符串中的第一个唯一字符(查找,自定义数据结构)
- Java中Web程序修改配置文件不重启服务器的方法
- AnimalTFDB 3.0 | 动物转录因子注释和预测的综合资源库
- 遗传算法入门到掌握(二)
- python使用布隆过滤器筛选数据
- 最小公倍数最大公约数
- 数据结构笔记(十九)-- 二叉树性质
- 重磅:达摩院医疗AI团队CVPR'20论文解读 | 凌云时刻
- 操作系统实践课程实验报告 总结篇
- Eclipse用SVN上传新项目
- RNAcentral 数据库简介
- java8日期加减_JDK 8 三种时间获取方法 日期加减
- 自动驾驶汽车传感器技术解析—毫米波雷达
- [附源码]Python计算机毕业设计Django大学生考勤管理系统论文