码迷,mamicode.com
首页 > Windows程序 > 详细

天气预报ajax+php(可惜用的是已经失效的api)

时间:2018-07-26 15:06:46      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:log   body   php   部分   OLE   请求   har   http   auto   

 

html部分

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>天气预报</title>
    <style>
        *{margin: 0;padding: 0;}
        .box{
            margin: 10px auto;
            padding: 20px;
            width: 200px;
            border: 1px solid #00f;
            text-align: center;
            background-color: #ccc;
        }
        .box p{
            line-height: 30px;
        }
        .sj{
            /* color: #0000fa; */
            font-weight: bold;
            font-size: 1.6em;
            margin-bottom: 10px;
        }
        .tq{
            font-weight: bold;
            /* font-size: 1.6em; */
        }
    </style>
</head>
<body>
    <div class="box">
        <p class="sj"></p>
        <p class="dz"></p>
        <p class="tq"></p>
        <p class="wd"></p>
        <p class="fx"></p>
        <p class="fl"></p>
        <p class="sd"></p>
        <p class="ap"></p>
    </div>
    <script>
    var date = new Date();
    var    year = date.getFullYear();
    var    month = date.getMonth() + 1;
    var    date = date.getDate();
    var $=function(sel){
            return document.querySelector(sel);
        }
    $(.sj).innerHTML=year+""+month+""+date+"";
        var xhr=new XMLHttpRequest();
        var url=tianqi.php?t=+Math.random();
        xhr.open("get",url,true);
    xhr.onreadystatechange=function(){
        if(4==this.readyState && 200==this.status){
            var txt=xhr.responseText;
                var o=JSON.parse(txt);
                 console.log(o);                
                $(.dz).innerHTML=地址:+o.weatherinfo.city;
                $(.tq).innerHTML=天气:+o.weatherinfo.njd;
                $(.wd).innerHTML=温度:+o.weatherinfo.temp;
                $(.fx).innerHTML=风向:+o.weatherinfo.WD;
                $(.fl).innerHTML=风力:+o.weatherinfo.WS;
                $(.sd).innerHTML=SD:+o.weatherinfo.SD;
                $(.ap).innerHTML=AP:+o.weatherinfo.AP;
        }
    }
        xhr.send();


    </script>
</body>
</html>

 

 

php部分

<?php 
header("Access-Control-Allow-Origin:*");//h5跨域解决方案
$url=‘http://www.weather.com.cn/data/sk/101060101.html‘;
$skinfo=file_get_contents($url);
print_r($skinfo);

 

 

原理是:

  通过php获得api的地址获得数据,如果谁有可用的数据,请求分享

  然后通过file_get_contents($url)获取url内容

    php 两种方法获取url内容 file_get_contents和curl

  然后通过ajax固定写法获取数据

var xhr=new XMLHttpRequest();
        var url=‘tianqi.php?t=‘+Math.random();
        xhr.open("get",url,true);
    xhr.onreadystatechange=function(){
        if(4==this.readyState && 200==this.status){
            var txt=xhr.responseText;
                var o=JSON.parse(txt);
                 console.log(o);                
                $(‘.dz‘).innerHTML=‘地址:‘+o.weatherinfo.city;
               。。。
                $(‘.ap‘).innerHTML=‘AP:‘+o.weatherinfo.AP;
        }
    }
        xhr.send();

txt是获得的数据,而o则是转换成json,然后通过’o.对象.对象名‘来输出值。

天气预报ajax+php(可惜用的是已经失效的api)

标签:log   body   php   部分   OLE   请求   har   http   auto   

原文地址:https://www.cnblogs.com/yinwangyizhi/p/9179350.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!