The Weather

后台:

connect("127.0.0.1","6379");
    //选择redis数据库
    $redis->select(1);
    //获取是否已经查询过(生命周期为半小时)
    $res= $redis->Get("$city");
    //进行判断
    if(!empty($res)){
        //将redis存储的数据转换为json
        $new_datas=unserialize($res);
        //反馈给前台存储在redis中的数据
        echo json_encode($new_datas);
    }else {
        //数据来源
        $url = "http://api.map.baidu.com/telematics/v2/weather?location=" . $city . "&ak=自己的AK(自行获取)&output=json";
        //获取数据
        $data = file_get_contents($url);
        //转换为数组
        $results = json_decode($data, true);
        //反馈的结果
        if ($results['error'] == '-3') {
            echo "-3";
            die;
        }
        //返回主体信息(错误信息,状态,当前查询城市)
        $new_data[] = [
            'error' => $results['error'],//返回错误信息
            'status' => $results['status'],//返回状态
            'currentCity' => $results['currentCity'],//返回查询的城市
        ];
        //获取日期(week),最低温度(low),最高温度(high)
        foreach ($results['results'] as $k => $v) {
            //截取字符串
            //  $new_data['week'][]=substr($v['date'],0,6);
            $new_data['low'][] = rtrim(substr($v['temperature'], 0, 4), '~');//最低温度
            $new_data['high'][] = ltrim(rtrim(substr($v['temperature'], 4, 5), '℃'),'~');//最高温度
        };
        //获取详细信息
        foreach ($results['results'] as $k => $v) {
            $new_data['results'][$k] = [
                'date' => $v['date'],//日期
                'dayPictureUrl' => $v['dayPictureUrl'],//白天温度图片
                'nightPictureUrl' => $v['nightPictureUrl'],//夜晚温度图片
                'wind' => $v['wind'], //风级
                'temperature' => $v['temperature'], //温度范围
            ];
        }
        //serialize转换方便存储数据
        $new_datas = serialize($new_data);
        //存储查询出来的数据
        $redis->set("$city", "$new_datas");
        //设置生命周期(半个小时)
        $time = 1*60*30;
        $redis->expire("$city","$time");
        //反馈给前台新查询数据
        echo json_encode($new_data);
    }


?>

  前台:




    
    
    
    查询天气情况
 
输入要查询的城市:

  

我给的是背景,自己打的才叫天下。

你可能感兴趣的:(The Weather)