要在自己的网站上添加一个天气预报功能,是一个很普通的需求,实现起来也不是很难。今天来介绍几个简单的方法。
使用第三方服务
有这样的一种简单的方式,借助http://www.tianqi.com/plugin/网上的天气服务,可以定制我们的显示形状,实现添加天气预报的功能。
下面给出一个简单的小例子:
复制代码 代码如下:<iframe width="420" scrolling="no" height="60" frameborder="0" allowtransparency="true" src="/UploadFiles/2021-04-02/index.php">
间接方式
说是间接的获取天气信息,那是因为对于我们个人而言,是不可能自己发射卫星,或者维护天气预报那么大的计算量的服务的。我们是借助其他网站提供的数据接口来实现的。
思路
由于Ajax本身的特点决定了岂不能够跨域请求,所以我们需要借助PHP来试下代理的功能。具体思路如下:
客户端打开我们的网页根据PHP获得客户端IP使用第三方服务获取该IP对应的城市编码调用天气接口,根据城市编码来获取天气信息客户端获得服务器返回的数据,并显示到页面上。
使用到的服务
下面列出我们用到的一句常用的接口
"nofollow" target="_blank" href="http://blog.csdn.net/anbowing/article/details/21936293">http://blog.csdn.net/anbowing/article/details/21936293
"nofollow" target="_blank" href="http://www.nohacks.cn/post-35.html">天气API接口大全
实现代码
代码的实现,分为三步。照应我们之前的逻辑来写即可。
"htmlcode">
<"Content-Type:text/json;charset=utf-8"); // ajax 自身特性决定其不能跨域请求,所以使用php的代理模式来实现垮与请求 //$url = 'http://www.weather.com.cn/adat/sk/101010100.html'; // 1.获取文本内容信息;2获取url对应的数据 //$data = file_get_contents($url); //echo $data; /////////////////////////////////////思路一 // ip--城市----->城市代码----- 天气信息 // 获取ip对应的城市信息,以及编码 http://ip.taobao.com/service.getIpInfo.php"60.205.8.179";//$_SERVER['REMOTE_ADDR']; $url = "http://ip.taobao.com/service/getIpInfo.php"."$client_ip"; $result = file_get_contents($url); echo $result; /////////////////////////////////////思路二 "htmlcode"><script> 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); } </script>"htmlcode">
<"http://www.weather.com.cn/adat/sk/".$city_id."html"; $weather = file_get_contents($weather_url); echo $weather; "htmlcode"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>获取天气信息</title> <script> function getinfo(){ var ajax = new XMLHttpRequest(); ajax.onreadystatechange = function(){ if(ajax.readyState==4){ alert(ajax.responseText); eval("var data=" + ajax.responseText); alert(data); document.getElementById("city").innerHTML =data.weatherinfo.city; document.getElementById("cityid").innerHTML =data.weatherinfo.cityid; document.getElementById("temp").innerHTML =data.weatherinfo.temp; document.getElementById("WD").innerHTML =data.weatherinfo.WD; document.getElementById("WS").innerHTML =data.weatherinfo.WS; document.getElementById("SD").innerHTML =data.weatherinfo.SD; document.getElementById("time").innerHTML =data.weatherinfo.time; } } ajax.open('get','./getinfo.php'); ajax.send(null); } </script> </head> <body> <h3>获取城市代码</h3> <button type="button" onclick="getcitycode()">获取城市代码</button> <br /> <script> 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); } </script> <span id="cityid"></span> <h3>点击按钮获取天气信息</h3> <button name="getinfo" onclick="getinfo()">获取</button> <div> <span>城市名称</span><span id="city"></span><br /> <span>城市代码</span><span id="cityid"></span><br /> <span>当前温度</span><span id="temp"></span><br /> <span>风向</span><span id="WD"></span><br /> <span>风速</span><span id="WS"></span><br /> <span>湿度</span><span id="SD"></span><br /> <span>更新时间</span><span id="time"></span><br /> </div> </body> </html>总结
在自己的网站上添加一个天气预报功能,其实并不难。也许还有更为简单的方式,这里就算是一个抛砖引玉的过程吧。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。