PHP微信查询城市天气,首先,你需要找到一个获取天气的API,此处,我用的是百度的apistore,申请和使用API的网址:http://apistore.baidu.com/apiworks/servicedetail/112.html

登录百度账号,并用手机发送请求获取apikey。有了apikey,可以按照它的示例来请求城市天气了。(可以按照城市中文名,拼音,城市编号等来查询)

你可以现在本地做测试,请求完成之后,再放到自己的域名空间的脚本里。

测试的脚本例如:(注意apikey填写自己申请的)

header('Content-type:text/html;charset=UTF-8');

$ch = curl_init();

$url = 'http://apis.baidu.com/apistore/weatherservice/cityname?cityname=上海';

$header = array(

'apikey: ',//你的apikey

);

// 添加apikey到header

curl_setopt($ch, CURLOPT_HTTPHEADER , $header);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// 执行HTTP请求

curl_setopt($ch , CURLOPT_URL , $url);

$res = curl_exec($ch);

$res = json_decode($res, true);

echo "

";

print_r($res);

echo "

";

$contentStr = "";

foreach($res as $k=>$v){

if($k == "retData"){

$contentStr = "城市:" . $v['city'] . "\n";

$contentStr .= "日期:" . $v['date'] . "\n";

$contentStr .= "天气:" . $v['weather'] ."\n";

$contentStr .= "平均气温:" . $v['temp'] . "℃\n";

$contentStr .= "最低气温:" . $v['l_tmp'] ."℃\n";

$contentStr .= "最高气温:" . $v['h_tmp'] . "℃\n";

$contentStr .= "风力:" . $v['WS'] . "\n";

$contentStr .= "风向:" . $v['WD'] . "\n";

$contentStr .= "日出时间:" . $v['sunrise'] . "\n";

$contentStr .= "日落时间:" . $v['sunset'] . "\n";

$contentStr .= "经度:" . $v['longitude'] . "\n";

$contentStr .= "纬度:" . $v['latitude'];

}

}

echo $contentStr;

如果你填写了自己的apikey,那么应该能获取到所请求的天气了:

如果能返回正常的数据了,那么就可以放到你的域名空间里了。(公众平台里开发者中心填写的url,该url有连接微信接口等功能)

如果你看不懂下面的代码或者第一次接触微信开发,可以参考我之前的文章:https://www.jb51.net/article/87252.htm

下面的代码是responseMsg的一部分:

public function responseMsg(){

//get post data, May be due to the different environments

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //接收微信发来的XML数据

//extract post data

if(!empty($postStr)){

//解析post来的XML为一个对象$postObj

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

$fromUsername = $postObj->FromUserName; //请求消息的用户

$toUsername = $postObj->ToUserName; //"我"的公众号id

$keyword = trim($postObj->Content); //用户发送的消息内容

$time = time(); //时间戳

$msgtype = 'text'; //消息类型:文本

$textTpl = "

%s

";

if($postObj->MsgType == 'event'){ //如果XML信息里消息类型为event

if($postObj->Event == 'subscribe'){ //如果是订阅事件

$contentStr = "欢迎订阅misaka去年夏天!\n更多精彩内容:http://blog.csdn.net/misakaqunianxiatian";

$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);

echo $resultStr;

exit();

}

}

$which = mb_substr($keyword, 0, 2, 'UTF-8');//获取要返回什么样的信息

if($which== "翻译"){ //如果要进行翻译

//调用有道翻译API进行翻译

}elseif($which == "天气"){

$wea = $which;

$city = str_replace($wea, "", $keyword);

$ch = curl_init();

$url = 'http://apis.baidu.com/apistore/weatherservice/cityname?cityname=' . $city;

$header = array('apikey: '); //此处的apikey使用自己申请的apikey,填在冒号之后

// 添加apikey到header

curl_setopt($ch, CURLOPT_HTTPHEADER , $header);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// 执行HTTP请求

curl_setopt($ch , CURLOPT_URL , $url);

$res = curl_exec($ch);

$res = json_decode($res, true);

$contentStr = "";

foreach($res as $k=>$v){

if($k == "retData"){

$contentStr = "城市:" . $v['city'] . "\n";

$contentStr .= "日期:" . $v['date'] . "\n";

$contentStr .= "天气:" . $v['weather'] ."\n";

$contentStr .= "平均气温:" . $v['temp'] . "℃\n";

$contentStr .= "最低气温:" . $v['l_tmp'] ."℃\n";

$contentStr .= "最高气温:" . $v['h_tmp'] . "℃\n";

$contentStr .= "风力:" . $v['WS'] . "\n";

$contentStr .= "风向:" . $v['WD'] . "\n";

$contentStr .= "日出时间:" . $v['sunrise'] . "\n";

$contentStr .= "日落时间:" . $v['sunset'] . "\n";

$contentStr .= "经度:" . $v['longitude'] . "\n";

$contentStr .= "纬度:" . $v['latitude'];

}

}

$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);

echo $resultStr;

exit();

}else{

$contentStr = "输入翻译XXX可以进行翻译(=・ω・=)\n\n输入天气XX可以查询城市天气";

$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);

echo $resultStr;

exit();

}

完成之后(别忘了填写apikey),你的订阅号里,输入天气上海,那么应该能查到上海当天的天气了。

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

php显示出温度最好的城市,PHP微信开发之查询城市天气相关推荐

  1. 使用xp框架状态栏显示手机温度(希望可以通过)

    我们像以往那样新建一个普通Android Studio工程  然后编辑app/build.gradle  导入相关xposed api库 导入Xposed api库 dependencies {//p ...

  2. 【人工智能】阿里云城市数据大脑开发规范

    20世纪50年代刚提出人工智能时,由于机器计算能力等各方面的极大限制,大家一直努力的方向就是让机器模仿人的智能,著名的图灵测试本质也是在讲机器如何模拟人的智能.但互联网和计算技术发展到今天,除了模拟人 ...

  3. Java黑皮书课后题第3章:*3.20(科学:风寒温度)编写一个程序,提示用户输入一个温度值和一个风速值。如果输入值合法,那么显示风寒温度,否则显示温度或风速是不合法数据

    *3.20(科学:风寒温度)编写一个程序,提示用户输入一个温度值和一个风速值.如果输入值合法,那么显示风寒温度,否则显示温度或风速是不合法数据 题目 题目概述 破题 如何处理 代码 题目 题目概述 * ...

  4. Android百度地图定位APP,显示出当前位置坐标

    Android百度地图定位APP,显示出当前位置坐标 官网配置百度地图 通过CMD命令获取SHA1 在百度的官网里面创建一个应用 Android配置 显示地图即定位 配置 AndroidManifes ...

  5. 数据库建模模板、菜单显示出问题解决方案

    数据库建模模板.菜单显示出问题解决方案 您使用的是哪个版本? 要查找您使用的 Visio 版本,请在"帮助"菜单上单击"关于 Microsoft Office Visio ...

  6. 计算两个数之间所有整数的和_汇编语言:输入2个0–99之间的整数,对其做乘法运算,在屏幕上显示出该乘积对应的二进制和十六进制数...

    实验要求: (1)在屏幕提示:"please input the first number(0–99): "后,输入一个0–99之间的整数. 若所输入的数不在此范围内,或输入其它字 ...

  7. Python可视化中Matplotlib(4.三种设置样式方法、设置坐标刻度以及标签、设置显示出特殊字符)

    1.三种设置方式 (1)向方法传入关键字参数 上一节已经总结过,一直在使用 (2)对实例使用一系列的setter方法 具体的方法直接看代码 import matplotlib.pyplot as pl ...

  8. Java黑皮书课后题第2章:*2.17(科学:风寒温度)外面有多冷?...twc=35.74+0.6215ta-35.75v0.16+0.4275tav0.16,输入度数、风速显示风寒温度

    *2.17(科学:风寒温度)外面有多冷?...twc=35.74+0.6215ta-35.75v0.16+0.4275tav0.16,输入度数.风速显示风寒温度 题目 题目描述 破题 运行示例 代码 ...

  9. 为什么用 windbg 看 !address 显示出的Free是128T 大小?

    总是被朋友问,用 !address -summary 显示出上面的 Free ≈ 128T 到底是什么意思?我的空闲内存不可能有这么大,不管怎么说,先上命令. 0:009> !address - ...

最新文章

  1. GitHub标星2000+,如何用30天啃完TensorFlow2.0?
  2. Windows中动态磁盘管理
  3. textmetric结构
  4. Redis详解——常用命令总结(完善中)
  5. java图片预览上传_Java实现图片上传预览 (使用ajax提交)
  6. poj 3728 Catch That Cow ([kuangbin带你飞]专题一 简单搜索)
  7. 工业解密:百度地图背后的路线时长预估模型!
  8. asp连接mysql未发现数据源名称_asp.net – 连接到MySQL导致错误“未找到数据源名称且未指定默认驱动程序”...
  9. 多臂老虎机导论(一)引言
  10. Oracle服务的作用
  11. 鲁大师 android模拟器,手机模拟大师怎么安装?鲁大师安卓模拟器安装教程
  12. NTFS,exFAT,FAT32最详细的评测
  13. abaqus .cae文件默认程序设置
  14. 高并发高流量的大型网站架构设计
  15. 白话空间统计之:Moran's I(莫兰指数)
  16. ECharts2.0
  17. Java Heap dump文件分析工具jhat简介
  18. 一维量子行走及其拓扑结构
  19. 直播网站源码,使用nodejs显示HTML页面
  20. 用word编辑论文——双栏下的脚注问题

热门文章

  1. 电车识别 电瓶车识别
  2. UESTC人工智能 期末复习
  3. Apache Beam中python常用函数(二):聚合函数
  4. Oracle 中scott 用户的解锁以及修改密码
  5. 【Web技术】1154- 现代 Web 研发体系中的新一代低/零码搭建
  6. 湖北联通联手银行开展网络安全演练
  7. 安装国际版firefox(火狐浏览器)并设置语言为中文
  8. 如何写一份优秀的英文简历?
  9. html上中下布局关键字,HTML中关键字SEO优化布局位置
  10. ZOJ:3716 Ribbon Gymnastics