php定位并且获取天气信息

 1 header("Content-type: text/html; charset=utf-8");
 2 class getWeather{
 3     private $ak;
 4
 5     public function __construct($ak){
 6         if($ak){
 7             $this->ak=$ak;
 8         } else {
 9             die(‘参数错误‘);exit;
10         }
11
12     }
13
14     /**
15      * 获取城市名称
16      * @param string $ip ip地址(必须为有效ip)
17      * return string $city  城市名称,如武汉
18     */
19     public function getCity($ip=‘‘){
20         if(!$ip){
21             $ip=$this->get_client_ip();
22         }
23         $ak=$this->ak;
24         $content = file_get_contents("http://api.map.baidu.com/location/ip?ak=$ak&ip=$ip&coor=bd09ll");
25         $json = json_decode($content,true);
26         $address=$json[‘address‘];
27         $cityarr=explode("|", $address);
28         $city=$cityarr[‘2‘];//不带"市",如"武汉",而不是"武汉市"
29         return $city;
30     }
31
32     /**
33      * 获取天气预报信息
34      * @param string $city  城市名称,如武汉
35      * return array $data 天气信息
36     */
37     public function weatherInfo($city=‘‘){
38         if(!$city){
39             $city=$this->getCity();
40         }
41         $content1=urlencode(mb_convert_encoding($city, ‘gb2312‘, ‘utf-8‘));
42         $weather=file_get_contents("http://php.weather.sina.com.cn/xml.php?city=$content1&password=DJOYnieT8234jlsK&day=0");
43         $ob= simplexml_load_string($weather);
44         $json  = json_encode($ob);
45         $data = json_decode($json, true);
46         return $data;
47     }
48     /**
49     *获取ip
50     */
51     public function get_client_ip(){
52         if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")){
53             $ip = getenv("HTTP_CLIENT_IP");
54         }else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")){
55             $ip = getenv("HTTP_X_FORWARDED_FOR");
56         }else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
57             $ip = getenv("REMOTE_ADDR");
58         else if (isset($_SERVER[‘REMOTE_ADDR‘]) && $_SERVER[‘REMOTE_ADDR‘] && strcasecmp($_SERVER[‘REMOTE_ADDR‘], "unknown"))
59             $ip = $_SERVER[‘REMOTE_ADDR‘];
60         else
61             $ip = "unknown";
62         return($ip);
63     }
64 }
65 $baiduak=‘你的密钥‘;//百度地图api的密钥
66 $wea=new getWeather($baiduak);
67 $json=$wea->weatherInfo();
68 print_r($json);exit;
时间: 2024-12-15 07:23:12

php定位并且获取天气信息的相关文章

利用json获取天气信息

天气预报信息获取是利用json获取的,网上有非常多资源,源码.因为上面涉及到非常多天气信息,包含湿度,出行建议等,以及加入了全部城市代码的资源包.为了练手了解json的原理.我仅获取诚笃城市的最高温,最低温,城市名字. 我的布局是通过一个button获取城市名字,最高温,最低温.main.xnl代码例如以下 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo

C#调用WebService获取天气信息

概述 本文使用C#开发Winform应用程序,通过调用<WebXml/>(URL:http://www.webxml.com.cn)的WebService服务WeatherWS来获取天气预报数据.本程序所使用的Web服务的URL为:http://ws.webxml.com.cn/WebServices/WeatherWS.asmx,此服务为“2400多个城市天气预报Web服务”. 开发环境说明: 系统平台:Windows 7(32bit): 开发工具:VS2010: 实现过程 本程序通过“添加

Android——使用Volley+fastJson在新线程中读取网络接口获取天气信息

一,关于Volley 其实最初对于网络数据的访问,我是没想到要用框架的,使用HttpURLConnection或者HttpGet or HttpPost都可以实现.但是why? why I have to use Volley?   Before Volley: class HttpURLConnection_post extends Thread{ @Override public void run() { //设置请求的路径 String strUrl="http://api.qingyun

Java通过webservice接口获取天气信息

通过SOAP请求的方式获取天气信息并解析返回的XML文件. 参考: http://www.webxml.com.cn/WebServices/WeatherWS.asmx import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.URL; import java.net.URLConnection; import javax.xml.par

Python实战-天气预报项目-获取天气信息

天气预报首先需要的就是天气信息,可以从中国天气网的Wap网站上获取,因为Wap网站页面简单,便于抓取内容.网址是:http://wap.weather.com.cn/wap/,默认是北京的天气预报,可以更换城市.某城市的天气预报对应的网址是http://wap.weather.com.cn/wap/weather/city_code.shtml,其中city_code是城市代码.以南京市为例,南京的城市代码是101190101,所以对应的天气预报网址就是http://wap.weather.co

webservice 获取天气信息

调用免费的web service获取天气预报信息 先找到天气预报提供webService网络地址: wsdl文件说明 http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx wsdl文件 http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl 然后另存为webservice.wsdl 修改文件的<s:element ref="s:schema"/&

获取天气信息

//获取天气 function getweather($city){ //传入需要查询的城市 $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, "http://wthrcdn.etouch.cn/weather_mini?city=$city"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // curl_setopt($ch,CURLOPT_ENCODING ,

python 获取天气信息

[说明]接口为聚合数据接口.API使用说明: 实现代码: import requests,json def main(): #参数 farmat=1 cityname = input("请输入你想查询的城市天气:") key='621043608cb9e7f7f485461ef9e5adef' get_weather(farmat,cityname,key) def get_weather(format,cityname,key): url='http://v.juhe.cn/weat

Python3获取天气信息

防伪码:没有相当程度的孤独是不可能有内心的平和. Python版本 Python3.5.3 天气预报 Web 服务参考 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?op=getWeatherbyCityName 注:该服务可以显示3天的天气预报. import urllib.request from xml.dom.minidom import parseString url = "http://www.webxml.c