本来是想自己直接从中国天气网获取信息并处理,后来发现处理起来太麻烦,而且要获取所有城市的城市编码,再有就是!不支持国外天气!!(我们学校有很多毕业生在国外上学,所以我考虑还是做出支持国外天气的版本)

因此考虑直接调用别人的API,一开始选用了方倍工作室已经做好的接口(无奈也没有国外)。直到有一天返回北京天气温度是零下的时候(当时天热到不敢出门)。。。换!换!换!

后来终于发现最靠谱的接口----百度的天气API。

废话少说,首先大家要上 百度地图API申请一个专用key(大概一分钟就搞定了,很方便)

代码如下:

//图文信息2 for 天气【这是微信的图文信息模板】

$tqTpl = "

%s

5

";//最后发现最多只能看到五个item= =无语。。。

PHP代码

if(substr_count($keyword,'天气')!=0 && $keyword!='天气')

{

$geshu = substr_count($keyword,'天气');

$t = explode("天气",$keyword);

for($i=0;$i<=$geshu;$i++)

{

if($t[$i]!='')

{

$city = $t[$i];

break;

}

}

$mykey = "【这里换成你的API key】";

$url = "http://api.map.baidu.com/telematics/v3/weather?location=".$city."&output=json&ak=".$mykey;

$output = file_get_contents($url);

$contentStr = json_decode($output, true);

if($contentStr['status']=='success')

{

$T[0]['Title']=$contentStr['date']." ".$contentStr['results'][0]['currentCity']."天气";

//$T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg";

//$T[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg";

//上面两行可以设成你想要的顶部图片

if(is_array($contentStr['results'][0]['index']))

{

$T[2]['Title']="【pm2.5】".$contentStr['results'][0]['pm25']."n"."【".$contentStr['results'][0]['index'][0]['title']."】"."(".$contentStr['results'][0]['index'][0]['zs'].") ".$contentStr['results'][0]['index'][0]['des'];

//下一行是洗车指数,感觉不对主题还是不要的好。。

//$T[2]['Title']=$T[2]['Title']."n"."【".$contentStr['results'][0]['index'][1]['title']."】(".$contentStr['results'][0]['index'][1]['zs'].") ".$contentStr['results'][0]['index'][1]['des'];

$T[2]['Title']=$T[2]['Title']."n"."【".$contentStr['results'][0]['index'][2]['title']."】(".$contentStr['results'][0]['index'][2]['zs'].") ".$contentStr['results'][0]['index'][2]['des'];

}

else

$guowai=1;

for($i=1,$aaa=0;$i<=5;$i++)

{

if($i==2 && $guowai!=1)

continue;

if($guowai==1 && $i==5)

continue;

$T[$i]['Title']=$contentStr['results'][0]['weather_data'][$aaa]['date']." ".$contentStr['results'][0]['weather_data'][$aaa]['temperature']." ".$contentStr['results'][0]['weather_data'][$aaa]['weather']." ".$contentStr['results'][0]['weather_data'][$aaa]['wind'];

$T[$i]['PicUrl']=$contentStr['results'][0]['weather_data'][$aaa]['dayPictureUrl'];

$T[$i]['Url']=$contentStr['results'][0]['weather_data'][$aaa]['dayPictureUrl'];

$aaa++;

}

$tianqi = sprintf($tqTpl,$fromUsername,$toUsername,time(),"news",$T[0]['Title'],$T[0]['Description'],$T[0]['PicUrl'],$T[0]['Url'], $T[1]['Title'],$T[1]['Description'],$T[1]['PicUrl'],$T[1]['Url'], $T[2]['Title'],$T[2]['Description'],$T[2]['PicUrl'],$T[2]['Url'], $T[3]['Title'],$T[3]['Description'],$T[3]['PicUrl'],$T[3]['Url'], $T[4]['Title'],$T[4]['Description'],$T[4]['PicUrl'],$T[4]['Url'],$T[5]['Title'],$T[5]['Description'],$T[5]['PicUrl'],$T[5]['Url']);

echo $tianqi;

}

}

效果图如下:

将其中的$mykey变量改成自己的APIkey就行了。另外有一点让我不解的是,我微信用的图文模板明明是6个item,为什么回复实际效果只有5个呢= = 求广大网友帮忙解释

最后附代码说明。用户发送“北京天气”和“天气北京”都是可以的,所以首先做了字符串处理,得到正确的城市名。利用百度地图API给的网址,发出GET请求(其实就是直接访问),获取一个json类型的数据包。将数据包信息转成数组格式,对应的回复微信用户即可。国外的天气没有当天天气的具体说明,所以最后做了一点小修改。

PHP中对各种加密算法、Hash算法的速度测试对比代码

PHP的Hash算法是比较常用的,现在的MD5有时候不太安全,就得用到Hash_algos()中的其它算法,下面进行了一个性能的比较。php代码:define('testtime',50000);$algos

php发送get、post请求的6种方法简明总结

方法1:用file_get_contents以get方式获取内容:php$url='http://www.gimoo.net/';$html=file_get_contents($url);echo$html;方法2:用fopen打开url,以get方式获取内容:php$fp=fopen($url,

PHP大批量插入数据库的3种方法和速度对比

第一种方法:使用insertinto插入,代码如下:$params=array(‘value'='50′);set_time_limit(0);echodate(H:i:s);for($i=0;$i2000000;$i++){$connect_mysql-insert($params);};echodate(H:i:s);

微信php翻译和天气预报整合,微信公众平台天气预报功能开发相关推荐

  1. 微信公众平台消息接口开发(4)天气预报

    一.请求数据 首先需要能有取得天气数据的接口,这样的接口网上有很多.比如google, yahoo,天气网都提供天气接口 方倍工作室的API已经能提供全国各地的天气预报,使用方倍的API无需再建立城市 ...

  2. 微信公众平台消息接口开发(1)

    原文链接 现在微信很热,微信公众平台的应用也很热,其实微信公众平台消息接口开发并不难,只要有接口调用就OK了. 要开发微信公众平台上的应用,得准备什么呢? 至少要有一个公众账号.服务器.域名这三样东西 ...

  3. 微信公众平台搭建与开发揭秘

    <微信公众平台搭建与开发揭秘> 基本信息 作者: 易伟    出版社:机械工业出版社 ISBN:9787111435716 上架时间:2013-8-8 出版日期:2013 年8月 开本:1 ...

  4. 微信公众平台消息接口开发(2)-封装weixin.class.php

    微信公众平台消息接口开发(2)-封装weixin.class.php 一.封装weixin.class.php 由于微信公众平台的通信使用的是特定格式的XML数据,每次接受和回复都要去做一大堆的数据处 ...

  5. 微信公众开放平台开发01---微信公众平台介绍,以及开发准备

    微信公众开放平台开发01---微信公众平台介绍,以及开发准备 技术qq交流群:JavaDream:251572072 部分内容收集于网络: 1.先分享一份源码: 微信公众开放平台开发 -智能机器人ja ...

  6. 微信公众平台消息接口开发(34)微信墙之表白墙/婚礼墙/晚会墙/会议墙/晒单墙/照片墙/历史墙...

    微信公众平台开发模式 微信 公众平台 消息接口 开发模式 企业微信公众平台 微信墙 婚礼墙/晚会墙/会议墙/晒单墙/照片墙/历史墙 历史上的今天 作者:方倍工作室   原文: http://www.c ...

  7. php网站怎么对接微信群,PHP对接微信公众平台消息接口开发流程教程

    PHP(外文名:PHP: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于学习,使 ...

  8. php对接微信提醒,PHP对接微信公众平台消息接口开发流程教程

    PHP对接微信公众平台消息接口开发流程教程 发布于 2015-02-15 08:54:13 | 157 次阅读 | 评论: 1 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hyperte ...

  9. 微信公众平台基本功能简单说明

    学习微信,首先要知道微信之父,是张小龙~ WeChat,2011年推出,可以发送文字,表情,图片,语言,视频,位置,链接,支持语音事实对讲. 宣传口号:再小的个体也有自己的品牌,这也极大的促进了个人公 ...

  10. php微信公众号怎么开发_PHP对接微信公众平台消息接口开发流程详解及实例

    这篇文章主要介绍了PHP对接微信公众平台消息接口开发流程,如何使用PHP版接口操作公众平台消息,需要的朋友可以参考下 一.写好接口程序 在你的服务器上上传好一个接口程序文件内容如下: 代码如下:< ...

最新文章

  1. Science背靠背: NLR受体介导植物抗病反应新机制
  2. 迁移学习——Domain Adaptation
  3. 可怕!公司部署了一个东西,悄悄盯着你
  4. Python pass 语句
  5. 图像处理与计算机视觉:基础,经典以及最近发展(1)序
  6. SAP 业务常用表的收集
  7. ADDCOMPONENT之后立即(同步)调用AWAKE,但START却是所有AWAKE完成后才调用 的(异步)...
  8. Python+Opencv颜色和形状检测
  9. jsf 后台参数到页面_JSF:直接从页面将参数传递给JSF操作方法,这是JavaEE 6+的一个不错的功能...
  10. [Linux] linux服务器主机性能、空间监控脚本
  11. doe全称是什么意思_QA、QC、QE…都是什么意思
  12. python如何保存数组_如何在Python中保存2D数组(列表)?
  13. JavaScript(一)基本语法
  14. python全栈之巅_Linux Crontab 定时任务
  15. dev项目属性按钮是灰色_【网页特效】11 个文本输入和 6 个按钮操作 特效库
  16. python项目如何打包_python项目怎么打包运行?
  17. TeamViewer的安装和使用方法
  18. oracle数据库的使用
  19. linux css压缩工具下载,推荐15个最好用的JavaScript代码压缩工具
  20. LVGL8.2学习笔记

热门文章

  1. java从键盘上录入任何整数,输出该整数的阶乘
  2. Tomcat端口号的修改
  3. linux 多个定时器,timer: 一个Linux下的超级精简的多重定时器:可实现成千上万个定时任务,定时精度可达纳秒级别,且同一时间点可添加不同的任务!适用于云后台服务和嵌入式等各种环境。...
  4. pcl从一个点云里面导出下标
  5. java数据结构期末复习_java数据结构复习02
  6. 5g虚拟技术旅游_5G造就文旅新时代,驴迹科技探索智慧出行创新领域
  7. python eval简介
  8. 【Python】IDE环境Pycharm运行虚拟环境Django
  9. Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext
  10. Nginx的平滑升级记录---适用于编译安装的Nginx