首页 后端开发 php教程 使用PHP怎么查询天气预报

使用PHP怎么查询天气预报

Oct 17, 2022 pm 12:26 PM
php

PHP查询天气预报的步骤:1、开通天气预报接口服务,获取接口请求Key;2、调用接口API发出请求查询城市天气;3、获取返回的天气相关信息,语法“$data = $result['result'];”,具体根据业务实际逻辑调整修改信息并输出即可。

使用PHP怎么查询天气预报

本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

怎么利用PHP查未来多少天的天气预报?下面本篇文章就来带大家聊聊基于PHP的免费天气预报接口查询,希望对大家有所帮助。

1、开通接口

天气预报接口服务使用的聚合数据提供的免费接口,每天可以100次免费调用。可以通过 https://www.juhe.cn/docs/api/id/73?s=cpphpcn    注册及开通。

2、通过PHP发起城市天气查询

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

<?php

// 请求的接口URL

$apiUrl = 'http://apis.juhe.cn/simpleWeather/query';

// 请求参数

$params = [

    'city' => '苏州', // 要查询的城市

    'key' => '您申请的接口调用Key'

];

$paramsString = http_build_query($params);

 

// 发起接口网络请求

$response = juheHttpRequest($apiUrl, $paramsString , 1);

$result = json_decode($response, true);

if ($result) {

    $errorCode = $result['error_code'];

    if ($errorCode == 0) {

        // 获取返回的天气相关信息,具体根据业务实际逻辑调整修改

        $data = $result['result'];

 

        // 打印当前实况天气信息

        echo "当前城市:{$data["city"]}".PHP_EOL;

        echo "当前温度:{$data["realtime"]["temperature"]}".PHP_EOL;

        echo "当前湿度:{$data["realtime"]["humidity"]}".PHP_EOL;

        echo "当前天气:{$data["realtime"]["info"]}".PHP_EOL;

        echo "当前风向:{$data["realtime"]["direct"]}".PHP_EOL;

        echo "当前风力:{$data["realtime"]["power"]}".PHP_EOL;

        echo "当前空气质量:{$data["realtime"]["aqi"]}".PHP_EOL;

 

    } else {

        // 请求异常

        echo "请求异常:{$errorCode}_{$result["reason"]}".PHP_EOL;

    }

} else {

    // 可能网络异常等问题,无法正常获得相应内容,业务逻辑可自行修改

    echo "请求异常".PHP_EOL;

}

 

/**

 * 发起网络请求函数

 * @param $url 请求的URL

 * @param bool $params 请求的参数内容

 * @param int $ispost 是否POST请求

 * @return bool|string 返回内容

 */

function juheHttpRequest($url, $params = false, $ispost = 0)

{

    $httpInfo = array();

    $ch = curl_init();

 

    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);

    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36');

    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);

    curl_setopt($ch, CURLOPT_TIMEOUT, 12);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    if ($ispost) {

        curl_setopt($ch, CURLOPT_POST, true);

        curl_setopt($ch, CURLOPT_POSTFIELDS, $params);

        curl_setopt($ch, CURLOPT_URL, $url);

    } else {

        if ($params) {

            curl_setopt($ch, CURLOPT_URL, $url.'?'.$params);

        } else {

            curl_setopt($ch, CURLOPT_URL, $url);

        }

    }

    $response = curl_exec($ch);

    if ($response === FALSE) {

        // echo "cURL Error: ".curl_error($ch);

        return false;

    }

    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    $httpInfo = array_merge($httpInfo, curl_getinfo($ch));

    curl_close($ch);

    return $response;

}

登录后复制

3、通过PHP发起生活指数查询

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

// 请求的接口URL

$apiUrl = 'http://apis.juhe.cn/simpleWeather/life';

// 请求参数

$params = [

    'city' => '苏州', // 要查询的城市

    'key' => '您申请的接口调用Key'

];

$paramsString = http_build_query($params);

 

// 发起接口网络请求

$response = juheHttpRequest($apiUrl, $paramsString , 1);

$result = json_decode($response, true);

if ($result) {

    $errorCode = $result['error_code'];

    if ($errorCode == 0) {

        // 获取返回的天气相关信息,具体根据业务实际逻辑调整修改

        $data = $result['result']['life'];

 

        // 打印当前实况天气信息

        echo "空调指数:{$data['kongtiao']['v']},{$data['kongtiao']['des']}".PHP_EOL;

        echo "过敏指数:{$data['guomin']['v']},{$data['guomin']['des']}".PHP_EOL;

        echo "舒适度指数:{$data['shushidu']['v']},{$data['shushidu']['des']}".PHP_EOL;

        echo "穿衣指数:{$data['chuanyi']['v']},{$data['chuanyi']['des']}".PHP_EOL;

        echo "钓鱼指数:{$data['diaoyu']['v']},{$data['diaoyu']['des']}".PHP_EOL;

        echo "感冒指数:{$data['ganmao']['v']},{$data['ganmao']['des']}".PHP_EOL;

        echo "紫外线指数:{$data['ziwaixian']['v']},{$data['ziwaixian']['des']}".PHP_EOL;

        echo "洗车指数:{$data['xiche']['v']},{$data['xiche']['des']}".PHP_EOL;

        echo "运动指数:{$data['yundong']['v']},{$data['yundong']['des']}".PHP_EOL;

        echo "带伞指数:{$data['daisan']['v']},{$data['daisan']['des']}".PHP_EOL;

        // .......

 

    } else {

        // 请求异常

        echo "请求异常:{$errorCode}_{$result["reason"]}".PHP_EOL;

    }

} else {

    // 可能网络异常等问题,无法正常获得相应内容,业务逻辑可自行修改

    echo "请求异常".PHP_EOL;

}

登录后复制

推荐学习:《PHP视频教程

以上是使用PHP怎么查询天气预报的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南

CakePHP 项目配置 CakePHP 项目配置 Sep 10, 2024 pm 05:25 PM

CakePHP 项目配置

CakePHP 日期和时间 CakePHP 日期和时间 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和时间

CakePHP 文件上传 CakePHP 文件上传 Sep 10, 2024 pm 05:27 PM

CakePHP 文件上传

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

讨论 CakePHP 讨论 CakePHP Sep 10, 2024 pm 05:28 PM

讨论 CakePHP

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

See all articles