PHP Ajax JavaScript Json获取天气信息实现代码

前端之家收集整理的这篇文章主要介绍了PHP Ajax JavaScript Json获取天气信息实现代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_404_0@要在自己的网站上添加一个天气预报功能,是一个很普通的需求,实现起来也不是很难。今天来介绍几个简单的方法


@H_4040@使用第三方服务


@H
404_0@有这样的一种简单的方式,借助<span style="color: #3366ff">http://www.tianqi.com/plugin/网上的天气服务,可以定制我们的显示形状,实现添加天气预报的功能


@H_4040@下面给出一个简单的小例子:


@H
404_0@<div class="codetitle"><a style="CURSOR: pointer" data="3603" class="copybut" id="copybut3603" onclick="doCopy('code3603')"> 代码如下:
<div class="codebody" id="code3603"><iframe width="420" scrolling="no" height="60" frameborder="0" allowtransparency="true" src="http://i.tianqi.com/index.PHP?c=code&id=12&icon=1&num=5">


@H_4040@

间接方式


@H
404_0@说是间接的获取天气信息,那是因为对于我们个人而言,是不可能自己发射卫星,或者维护天气预报那么大的计算量的服务的。我们是借助其他网站提供的数据接口来实现的。


@H_4040@

思路


@H
404_0@由于Ajax本身的特点决定了岂不能够跨域请求,所以我们需要借助PHP来试下代理的功能。具体思路如下:


<p style="text-align: center">


@H_404_0@客户端打开我们的网页根据PHP获得客户端IP使用第三方服务获取该IP对应的城市编码调用天气接口,根据城市编码来获取天气信息客户端获得服务器返回的数据,并显示页面上。


@H_4040@

使用到的服务


@H
404_0@下面列出我们用到的一句常用的接口
•ip转城市:”http://ip.taobao.com/service/getIpInfo.PHP?ip=XXX”
•查看对应的城市的代码:<a rel="nofollow" target="_blank" href="http://blog.csdn.net/anbowing/article/details/21936293"&gt;http://blog.csdn.net/anbowing/article/details/21936293
•访问天气接口,获取数据:”http://www.weather.com.cn/adat/sk/“.$city_id.”html

下面的是几个很好的接口网站。 •

@H_404_0@

实现代码

@H_404_0@代码的实现,分为三步。照应我们之前的逻辑来写即可。 •获取客户端ip对应的城市

PHP;"> // 1.获取文本内容信息;2获取url对应的数据
//$data = file_get_contents($url);
//echo $data;

/////////////////////////////////////思路一
// ip-->>城市----->>>城市代码----->>>> 天气信息
// 获取ip对应的城市信息,以及编码 http://ip.taobao.com/service.getIpInfo.PHP?ip=60.205.8.179
// 通过编码获得天气信息 http://www.weather.com.cn/adat/sk/编码.html
$client_ip = "60.205.8.179";//$_SERVER['REMOTE_ADDR'];
$url = "http://ip.taobao.com/service/getIpInfo.PHP?ip="."$client_ip";
$result = file_get_contents($url);
echo $result;

/////////////////////////////////////思路二

?>

@H_404_0@在客户端我们就可以看到

function getcitycode(){ var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if(xhr.readyState==4){ //alert(xhr.responseText); eval('var citycode='+xhr.responseText); alert(citycode.data.city); } } xhr.open('get','./getcityid.PHP'); xhr.send(null); }
@H_404_0@•再向服务器请求一下城市代码,传给天气接口即可。

PHP;"> $city_id = $_GET['city'];
//print_r($GET);
调用数据库代码逻辑,查找到对应的城市的城市编码
只需要从我们实现存储好的城市表中警醒查找即可。而且城市编码的表基本上不发生变化,我们可以稳定的使用。
$weather_url = "http://www.weather.com.cn/adat/sk/".$city_id."html";
$weather = file_get_contents($weather_url);
echo $weather;

?>

@H_404_0@前端完整代码

<a href="/tag/huoqu/" target="_blank" class="keywords">获取</a>天气信息

获取城市代码


点击按钮获取天气信息

城市名称
城市代码
当前温度
风向
风速
湿度
更新时间
@H_404_0@

总结

@H_404_0@在自己的网站上添加一个天气预报功能,其实并不难。也许还有更为简单的方式,这里就算是一个抛砖引玉的过程吧。

@H_404_0@以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

猜你在找的PHP相关文章