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

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

因此考虑直接调用别人的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;

}

}

效果图如下:

bafe4182497acab178bf8dfdf35d169f.png

将其中的$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);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573279.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于Jenkins找不到依赖Jar包问题

昨晚在Jenkins发布时遇到一个Jar包找不到的问题&#xff0c;控制台的报错信息如下&#xff1a; 说白了就是找不到依赖的Jar包&#xff0c;但是当我们回退到灰度的时候发现灰度的环境是构建是没有问题的&#xff0c;为什么同一套代码在两个环境却有天壤之别呢&#xff0c;本着试…

查看Linux服务器运行级别命令,linux命令1、如何查看当前的Linux服务器的运行级别?...

1、如何查看当前的Linux服务器的运行级别&#xff1f;答: ‘who -r’ 和 ‘runlevel’ 命令可以用来查看当前的Linux服务器的运行级别。2、如何查看Linux的默认网关&#xff1f;答: 用 “route -n” 和 “netstat -nr” 命令&#xff0c;我们可以查看默认网关。除了默认的网关信…

BIEE入门(一)架构

BIEE作为Oracle的新的商业智能平台企业版&#xff0c;起源于Oracle所收购的Siebel公司&#xff0c;BIEE原来叫做Siebel Analytic&#xff0c;但是Siebel也不是它的发明者&#xff0c;它是Siebel在2001年收购的另一个公司叫nQuire software的产品&#xff0c;这个从它的配置文件…

redhat linux 9.0 拷贝u盘的文件,肿么用U盘安装Linux,安装的是red hat 9.0…用Ubuntu很方便,redhat可以吗?...

下面有两种安装方法.从dos安装.这方法可以不用软盘,比较方便.得到dosutils目录这个目录里有从dos安装和软盘安装的工具.一般都在第一个iso文件里.在linux下可以这样装载iso文件.mount -o loop valhalla-i386-disc1.iso /mnt/cdromcd /mnt/cdromcd -r images /mnt/c 把dosutils目…

获得当前字符串的宽度

<!DOCTYPE html><html lang"en"><head> <meta charset"UTF-8"> <title>获得当前字符串的宽度</title> <script type"text/javascript" src"jquery-min.js"></script></…

linux需要的GLIBCXX版本,linux-如果我已经安装了GLIBCXX_4.1.2,则需要GLIBCXX_3.4.9吗?

我正在Fedora 8/9 64位(http://mediainfo.sourceforge.net/es/Download/Fedora)上安装MediainfoDLL的最新版本.我下载了libmediainfo-0.7.20和libzen0-0.4.3文件.当我尝试安装libzen0时,得到以下输出&#xff1a;# rpm -i libzen0-0.4.3-1.x86_64.Fedora_9.rpmwarning: libzen0…

小小动画

<script src"JS/jquery-1.7.2.min.js"></script><style type"text/css">* {margin: 0px;padding: 0px;}#dw {position: absolute;width: 200px;height: 70px;font-family: 迷你简书魂;font-size: 50px;}#zhezhao {position: absolute;wi…

linux so文件统一目录,linux加载指定目录的so文件

例如&#xff0c;有个so在/tmp/libs/libzmq.so.3&#xff1a;[winlindev6 libs]$ ls /tmp/libs/ -lhtotal 2.5Mlrwxrwxrwx 1 winlin winlin 15 Dec 12 12:58 libzmq.so -> libzmq.so.3.0.0lrwxrwxrwx 1 winlin winlin 15 Dec 12 12:58 libzmq.so.3 -> libzmq.so.3.0.0-rw…

VBS基础篇 - Dictionary对象

VBS基础篇 - Dictionary对象 Dictionary是存储数据键和项目对的对象&#xff0c;其主要属性有Count、Item、Key&#xff0c;主要方法有Add、Exists、Items、Keys、Remove、RemoveAll。 建立字典 Dim Dict : Set Dict CreateObject("Scripting.Dictionary")添加键值对…

linux编译mesa,如何在Ubuntu 16.04,17.10中安装Mesa 17.3.3

最新的MESA 3D图形库17.3.3现在在Ubuntu-X team PPA存储库中为Ubuntu 16.04和Ubuntu 17.10提供。Mesa 17.3.3实现了OpenGL 4.5 API&#xff0c;但由glGetString(GL_VERSION)或glGetIntegerv(GL_MAJOR_VERSION)/glGetIntegerv(GL_MINOR_VERSION)报告的版本取决于所使用的特定驱动…

iOS开发Swift篇—(三)字符串和数据类型

一、字符串 字符串是String类型的数据&#xff0c;用双引号""包住文字内容 let website "http://www.github.com" 1.字符串的常见操作 &#xff08;1&#xff09;用加号 做字符串拼接 let scheme "http://" let path “www.github.com” le…

linux查看xml文件的配置,3、kvm虚拟机日常管理与配置

KVM虚拟机的管理主要是通过virsh命令对虚拟机进行管理。1. 查看KVM虚拟机配置文件及运行状态(1) KVM虚拟机默认配置文件位置: /etc/libvirt/qemu/autostart目录是配置kvm虚拟机开机自启动目录。(2) virsh命令帮助# virsh -help或直接virsh命令和&#xff0c;再执行子命令。如下…

hdu5726-GCD-ST表+二分

先用st表处理出所有l-r的GCD值&#xff0c;然后二分求得这些值一共出现了多少次。 1 #include<bits/stdc.h>2 3 #define inf 0x3f3f3f3f4 5 const int maxn100000;6 7 using namespace std;8 9 typedef pair<int,int> P;10 11 int l,r;12 13 int icase;14 15 int t…

linux桌面环境是什么意思,Linux 黑话解释:什么是桌面环境?

在桌面 Linux 世界中&#xff0c;最常用的术语之一就是 桌面环境(Desktop Environment)(DE)。如果你是 Linux 的新手&#xff0c;你应该了解一下这个经常使用的术语。什么是 Linux 中的桌面环境?桌面环境是一个组件的组合体&#xff0c;为你提供常见的 图形用户界面(graphical…

redhat linux 安装ftp服务,RedHat Linux 9.0为例介绍一下如何安装和配置vsftpd服务器

本文以RedHat Linux 9.0为例介绍一下如何安装和配置vsftpd服务器。安装服务器程序程序下载地址&#xff1a;&#xff0c;目前最新版本为2.0.3&#xff0c;源程序文件名为vsftpd-2.0.3.tar.gz。1&#xff0e;安装之前的准备&#xff1a;安装之前我们应该看看用户“nobody”和目录…

Hadoop 2.5.1集群安装配置

本文的安装只涉及了hadoop-common、hadoop-hdfs、hadoop-mapreduce和hadoop-yarn&#xff0c;并不包含HBase、Hive和Pig等。 http://blog.csdn.net/aquester/article/details/24621005 1. 规划 1.1. 机器列表 NameNode SecondaryNameNode DataNodes 172.16.0.100 172.16.0.…

linux杀掉进程后总是重启,Linux监控进程,进程关闭自动重启方案

Linux监控进程&#xff0c;进程关闭自动重启方案corntabshell脚本检测进程这个方案简单不用额外安装软件。缺点是存在间隔&#xff0c;corntab设置1秒执行一次shell脚本也是存在间隔的#!/bin/bash#author smallForest#email 1032817724qq.comproc_name"xiaofei.php" …

C语言atan2()函数:求y/x的反正切值

头文件&#xff1a;#include <math.h>atan2() 函数用于求 y / x 的反正切值。其原型为&#xff1a; double atan2(double y, double x);【参数】x为坐标的X轴值&#xff0c;y为坐标的Y轴值。如果 x 和 y 的值都为 0&#xff0c;将会导致错误。atan2() 求坐标 x 和 y 的…

Linux qt程序打包依赖库,Linux打包免安装的Qt程序(编写导出依赖包的脚本copylib.sh,程序启动脚本MyApp.sh)...

本文介绍如何打包Qt程序&#xff0c;使其在没有安装Qt的系统可以运行。默认前提&#xff1a;另外一个系统和本系统是同一个系统版本。1&#xff0c;编写导出依赖包的脚本copylib.sh#!/bin/bashLibDir$PWD"/lib"Target$1lib_array($(ldd $Target | grep -o "/.*&…

ubuntu14.04 x86编译upx 3.92 及so加固

的参考文章&#xff1a; http://www.cnblogs.com/fishou/p/4202061.html 1.download upx和所依赖的组件 upx3.92&#xff1a;https://www.pysol.org:4443/hg/upx.hg/archive/tip.tar.gzLZMA4.43&#xff1a;http://nchc.dl.sourceforge.net/project/sevenzip/LZMA%20SDK/4.43/l…