如何使用PHP调用API接口实现天气查询功能

作者&投稿:荆致 (若有异议请与网页底部的电邮联系)
怎么用php调用天气接口api~

要看对接什么网站的API,一般都会有的接口文档

接口会返回json数据,用php提供的json_decode函数可以将其转为对象或者数组,再输出即可。 可以参考我的网站 http://zy62.com

最近在做微信公众平台测试时,想在里面子菜单上添加查询未来几天(包括今天)天气的功能,就查找了下好用的天气预报查询接口API,使用比较多的有:国家气象局天气接口、新浪天气预报接口、百度天气预报接口、google天气接口、Yahoo天气接口等等,我使用的是百度提供的免费天气查询接口API,下面与大家分享下...

1、查询方式:

百度提供的是根据纬度和城市名查询天气情况

2、接口事例:

3、接口参数说明:


4、返回结果说明:


5、

  • //城市名  

  • $city = '上海';  

  • //对json格式的字符串进行编码  

  • $arr =json_decode($str,TRUE);         

  • print_r($atr);  

  • //城市名

  •    $city = '上海';

  •  

  •    //获取json格式的数据

  •    $str =file_get_contents("http://api.map.baidu.com/telematics/v3/weather?location=".$city."&output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ");


  •    //对json格式的字符串进行编码

  •    $arr =json_decode($str,TRUE);      


  •    print_r($atr);



  • 6、返回页面的是json编码后的数据:

    [plain] view plain copy print?

  • <meta charset="UTF-8">  

  • Array  

  • (  

  • [error] => 0  

  • [status] => success  

  • [date] => 2014-03-17  

  • [results] => Array  

  • (  

  • [0] => Array  

  • (  

  • [currentCity]=> 上海  

  • [weather_data]=> Array  

  • (  

  • [0]=> Array  

  • (  

  • [date] => 周一(今天, 实时:19℃)  

  • [dayPictureUrl] =>http://api.map.baidu.com/images/weather/day/qing.png  

  • [nightPictureUrl] =>http://api.map.baidu.com/images/weather/night/qing.png  

  • [weather] => 晴  

  • [wind] => 西南风3-4级  

  • [temperature] => 13℃  

  • )  

  • [1] => Array  

  • (  

  • [date]=> 周二  

  • [dayPictureUrl] =>http://api.map.baidu.com/images/weather/day/duoyun.png  

  • [nightPictureUrl] => http://api.map.baidu.com/images/weather/night/yin.png  

  • [weather]=> 多云转阴  

  • [wind]=> 东北风3-4级  

  • [temperature] => 24 ~ 9℃  

  • )  

  • [2] => Array  

  • (  

  • [date]=> 周三  

  • [dayPictureUrl] =>http://api.map.baidu.com/images/weather/day/zhongyu.png  

  • [nightPictureUrl] => http://api.map.baidu.com/images/weather/night/xiaoyu.png  

  • [weather]=> 中雨转小雨  

  • [wind]=> 东北风3-4级  

  • [temperature] => 15 ~ 8℃  

  • )  

  • [3] => Array  

  • (  

  • [date]=> 周四  

  • [dayPictureUrl] =>http://api.map.baidu.com/images/weather/day/duoyun.png  

  • [nightPictureUrl] =>http://api.map.baidu.com/images/weather/night/qing.png  

  • [weather]=> 多云转晴  

  • [wind]=> 北风3-4级  

  • [temperature] => 14 ~ 6℃  

  • )  

  • )  

  • )  

  • )  

  • )  

  • <meta charset="UTF-8">

  • Array

  • (

  •    [error] => 0

  •    [status] => success

  •    [date] => 2014-03-17

  •    [results] => Array

  •        (

  •            [0] => Array

  •                (

  •                    [currentCity]=> 上海

  •                    [weather_data]=> Array

  •                        (

  •                            [0]=> Array

  •                                (

  •                                   [date] => 周一(今天, 实时:19℃)

  •                                   [dayPictureUrl] =>http://api.map.baidu.com/images/weather/day/qing.png

  •                                   [nightPictureUrl] =>http://api.map.baidu.com/images/weather/night/qing.png

  •                                    [weather] => 晴

  •                                   [wind] => 西南风3-4级

  •                                   [temperature] => 13℃

  •                                )


  •                            [1] => Array

  •                                (

  •                                    [date]=> 周二

  •                                   [dayPictureUrl] =>http://api.map.baidu.com/images/weather/day/duoyun.png

  •                                   [nightPictureUrl] => http://api.map.baidu.com/images/weather/night/yin.png

  •                                    [weather]=> 多云转阴

  •                                    [wind]=> 东北风3-4级

  •                                   [temperature] => 24 ~ 9℃

  •                                )


  •                            [2] => Array

  •                                (

  •                                    [date]=> 周三

  •                                   [dayPictureUrl] =>http://api.map.baidu.com/images/weather/day/zhongyu.png

  •                                   [nightPictureUrl] => http://api.map.baidu.com/images/weather/night/xiaoyu.png

  •                                    [weather]=> 中雨转小雨

  •                                    [wind]=> 东北风3-4级

  •                                   [temperature] => 15 ~ 8℃

  •                                )


  •                            [3] => Array

  •                                (

  •                                    [date]=> 周四

  •                                   [dayPictureUrl] =>http://api.map.baidu.com/images/weather/day/duoyun.png

  •                                    [nightPictureUrl] =>http://api.map.baidu.com/images/weather/night/qing.png

  •                                    [weather]=> 多云转晴

  •                                    [wind]=> 北风3-4级

  •                                   [temperature] => 14 ~ 6℃

  •                                )


  •                        )


  •                )


  •        )


  • )

  • 7、PHP中自带了处理json格式字符串的内置函数,下面做一个事例,并给出完整代码:

    [php] view plain copy print?

  • <metacharset="UTF-8">  

  • <?php  

  • //城市名  

  • $city = '上海';  

  • //获取json格式的数据  

  • $str = file_get_contents("http://api.map.baidu.com/telematics/v3/weather?location=".$city."&output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ");  

  • //对json格式的字符串进行编码  

  • $arr = json_decode($str,TRUE);         

  • echo "城市:".$arr['results'][0]['currentCity']." 日期:".$arr['date']."<br /><br />";  

  • foreach($arr['results'][0]['weather_data']as $val)  

  • {  

  • echo $val['date']."<br/>";  

  • echo "天气:{$val['weather']}<br/>";  

  • echo "风向:{$val['wind']}<br/>";  

  • echo "温度:{$val['temperature']}<br/><br />";  

  • }  

  • ?>  

  • <metacharset="UTF-8">

  • <?php

  •    //城市名

  •    $city = '上海';

  •  

  •    //获取json格式的数据

  •    $str = file_get_contents("http://api.map.baidu.com/telematics/v3/weather?location=".$city."&output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ");


  •    //对json格式的字符串进行编码

  •    $arr = json_decode($str,TRUE);      


  •    echo "城市:".$arr['results'][0]['currentCity']." 日期:".$arr['date']."<br /><br />";


  •    foreach($arr['results'][0]['weather_data']as $val)

  •    {

  •        echo $val['date']."<br/>";

  •        echo "天气:{$val['weather']}<br/>";

  •        echo "风向:{$val['wind']}<br/>";

  •        echo "温度:{$val['temperature']}<br/><br />";

  •    }

  • ?>



  • 8、返回的内容如下:





php调用页面div内的a标签超链接?
preg_match_all('\/<div class="fl item-r">(.*)<\\\/div>\/isU',$return,$m);preg_match_all('\/<a href="(.*)"\/isU',$m[1][0],$arr);注:第一个正则匹配出来的$m是一个二维数组,你自己输出便知。所以应该使用$m[1][0]来取出字符串<a>xxx<\/a>的内容。

...不可以调用上级的目录 比如用a\/b\/index.php调用a\/index.php 怎么写...
..\/index.php ..\/就是指上一级目录 你当前a\/b\/index.php是在a\/b这个目录, 它的上级..\/就是a目录了

php怎么加a标签,代码一楼
你是说用PHP输入a标签是吗?echo "<a>Hello World<\/a>";当做字符串输入就可以了,被自动被浏览器解释的。

php 中a标签,如何传值?
act=加上你要传的值,然后在php的处理页面中,用$_GET['act']来接受这个a传过来的值,然后在处理就行了,这里我给出写的具体例子:\\x0d\\x0a html中:\\x0d\\x0a\\x0d\\x0a 我的测试\\x0d\\x0a php中:\\x0d\\x0a\\x0d\\x0a if( isset($_GET['act']) && trim( $...

如何在html页面用a标签跳转到新页面并且用php调取数据在新页面中以...
跳转:<a href="bb.html">点击跳转到bb页面<\/a> 首先你要通过接口在当前页面获取到相关的数据,等你点击了按钮跳转之后在bb页面再把数据渲染出来 一般就是这样:(function(){ var pag = '获取到的数据';('.box').html(pag);})

PHP中点击A 标签怎么执行相应事件呢
当然用id拉 在js中获取id来进行判断然后执行啊。--- 给你举个例子 其实这个例子不用id的 一般id都用于标签控件和div span等控件的。<a href='#' onclick='return checkHuiFu();'>回复<\/a> <input type='text' id='name' value='姓名' name='name'> javascript代码 <script> function c...

php判断a标签是否点击
查看是否调用了echo“i”。php在进行a标签使用时,会嵌入echo“i”函数,查看是否点击标签就通过查看是否调用了echo“i”来确定就行。PHP是一种易于学习和使用的服务器端脚本语言,只需要很少的编程知识就能使用PHP建立一个真正交互的WEB站点。

php 中a标签,如何传值?
php中a标签的传值一般都是都是get的方式来传值的,一般的格式都是链接地址后后面接一个?act=加上你要传的值,然后在php的处理页面中,用$_GET['act']来接受这个a传过来的值,然后在处理就行了,这里我给出写的具体例子:html中:<a href="ucenter.php?act=showcart">我的测试<\/a> php中...

链接a标签如何调用php写的函数
按你写的应该用url传值 <a href="dispsql.php?action=delete&id=这里放的是你数据库里对应记录的id">删除<\/a> <a href="dispsql.php?action=delete>全部删除<\/a> 在dispsql.php页面写删除语句,先接收上面传过来的条件 action=GTE["action"]的值来选择执行删除还是删除全部 if($action=="...

A、B服务器系统为乌班图,A是api接口 和数据库,B是管理后台,要怎么实 ...
两种办法 一:A上做接口,提供给B用 B程序中使用的所有和数据相关的操作都以API访问形式发送给A,等A处理好了返回.如果你是PHP语言代码.直接使用file_get_contents来直接连接A上的接口就能获取A上的数据.A上的接口应该都是一些操作类.接收参数,返回数据.例如:A服务器:<?php\/\/io.php$a=$_GET['a'...

潜江市15991644574: PHP如何调用API接口 -
牢雨甘草: 他会提供相应接口给你的,具体调用方法就相当于讲求某个链接.act=get_user_list&type=json在这里operate.php相当于一个接口,其中get_user_list 是一个API(获取用户列表),讲求返回的数据类型为JSON格式.act=get_user_list&type=json'...

潜江市15991644574: php怎么通过天气api获得大气能见度 -
牢雨甘草: 百度接口 有很多访问天气接口的 curl访问就行了 token值写好就ok

潜江市15991644574: php怎么调用其他网站提供的api接口? -
牢雨甘草: 通过php模拟post请求即可调用.php 模拟POST提交的方法:通过curl函数 Php代码:1. $post_data = array(); 2. $post_data['clientname'] = "test08"; 3. $post_data['clientpasswd'] = "test08"; 4. $post_data['submit'] = "submit"; 5. $url='http://...

潜江市15991644574: php怎么调用其他网站提供的api 接口 -
牢雨甘草: 在这里openUser.php相当于一个接口,其中get_user_list 是一个API(获取用户列表),讲求返回的数据类型为JSON格式.需要在PHP代码中执行这条链接他就会返回.GET方式的直接使用 $file_contents = file_get_content('http://localhost/...

潜江市15991644574: 别人给我提供了一个API接口,请问PHP怎样去接入这个API用到哪些函数? -
牢雨甘草: 一般简单的api都是直接get.拼出地址,然后返回值.比如最简单的,你这边有个登陆系统,但是用户是其它网站的,这时候你找其它网站要了一个验证用户的api,只用传用户和密码就可以了.你把用户名和密码从urlget过去,然后他返回一个true或者false.你接收这个值,如果是对的,就登陆成功,错的就失败.当然只是个最简单的比方,这样很不安全.多看看文档就可以了.

潜江市15991644574: php 怎么使用 weather API ? -
牢雨甘草: 这个是获取到的数据吗?可以使用json_decode()函数解析后就可以使用了.按照你给的数据举个例子:【代码】$str='{"weatherinfo":{"city":"西安","cityid":"101110101","temp":"25","WD":"西南风","WS":"2级...

潜江市15991644574: 如何使用 php 开发 api -
牢雨甘草: 比如一个自定义函数:function test(){echo 'hello world';}就可以叫做 api.api 既可以是单个的函数,也可以是封装在类里的方法,当然它们也是程序代码.开发一个 api 的流程可以很简单,也可以很复杂,视具体的编程任务而决定,并没有...

潜江市15991644574: php调用API -
牢雨甘草: 函数大概看了一下,大概意思是进行了一次socket通信 但是不知道你的代码给没给全 反正我看到的AF_INET,SOCK_STREAM,SOL_TCP 这3个常量是没有定义的 Socket_Set_Option执行了2次我觉得么啥必要 还有,如果socket通信失败的话,是会要报错的,如果有的话可以贴出来看看

潜江市15991644574: php怎么调用淘宝api -
牢雨甘草: 首先你得熟悉了解你做的那块.给你个网址参照 http://www.taoapi.com/ 然后下载淘宝API SDK文件导入你的php项目下,然后根据淘宝API使用手册,看调用你所需要的API需要哪些参数,然后再你得php文件中加载你所要用到的SDK文件 就可以直接使用了 我现在也在做这块 ,有时间可以交流一下...

潜江市15991644574: php是怎样使用通过淘宝API接口所返回的值 -
牢雨甘草: php调用远程api有两种方法,一种是通过fsockopen函数来传输和调用数据. 另一种方法是通过php册curl扩展来实现. 现在大部分程序使用的都是fsockopen和pfsockopen这两个函数.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网