代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
PHP
】
微信公众号获取天气查询功能
作者:
我的路途
/ 发布于
2013/10/11
/
662
微信公众号获取天气查询功能,通过微信公众号,达到查询天气信息
<?php header('Content-type:text/html;charset=utf-8'); /** * 说明:微信智能处理 * 作者:769022563@qq.com * 时间:2013.10.02 * 版本:V1.0.0.0 */ //这里是你申请是写的 token define("TOKEN", "769022563@qq.com"); $wechatObj = new wechatCallbackapiTest(); //首次使用,请注释掉下面的一行代码。 //然后添加 $wechatObj->valid(); //供首次验证需要 //验证成功后,即可以使用下面的代码 //$wechatObj->responseMsg(); /** * 说明:微信智能处理 * 作者:769022563@qq.com * 时间:2013.10.02 * 版本:V1.0.0.0 */ class wechatCallbackapiTest { public function valid() { $echoStr = $_GET["echostr"]; //valid signature , option if($this->checkSignature()){ echo $echoStr; exit; } } public function responseMsg() { //get post data, May be due to the different environments $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //extract post data if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $time = time(); if($postObj->MsgType!='text'){ $contentStr = "欢迎加入我们 作者:769022563@qq.com 公众微信号:FrankFactory "; }else{ $keyword = trim($postObj->Content); } $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; if (!isset($contentStr)) { $getweather = new getweather(); $contentStr=$getweather->getw($keyword); } $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $contentStr); echo $resultStr; }else { echo "请输入信息处理"; exit; } } private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } } } /** * 说明:微信智能处理 * 作者:769022563@qq.com * 时间:2013.10.02 * 版本:V1.0.0.0 */ class getweather{ //天气的对应编码,可以通过文件引入 private $arr=array( 101010100=>'北京', ); //天气对应编码的另一种形式 private $arrs=array( 101010100=>'beijing', ); public function getw($str){ $code=$this->check($str); if ($code){ $content = file_get_contents("http://m.weather.com.cn/data/{$code}.html"); if(!$content){ //mysql_query("insert into errorlog values(null,'没有取到天气接口数据','$date',$time)",$link); //echo mysql_error(); file_put_contents('weather.txt', '没有接受到天气数据', FILE_APPEND); return '暂时没有取到天气数据,请稍后再试'; } $result=json_decode($content,true); $info=$result['weatherinfo']; $strw="{$info['date_y']}{$info['week']},{$info['city']}的天气情况\n"; $strw .= "今天:({$info['temp1']}){$info['weather1']}{$info['wind1']}{$info['fl1']}。"; $strw .= "24小时穿衣指数:{$info['index_d']}\n"; $strw .= "明天:({$info['temp2']}){$info['weather2']}{$info['wind2']}{$info['fl2']}。"; $strw .= "48小时穿衣指数:{$info['index48_d']}"; return $strw; }else{ return '没有获取到该城市的天气,请确定输入了正确的城市名称,如\'北京\'或者\'beijing\''; } } /** * 验证接受到的数据是否合法 * @param string $str 传入的接受到的数据 * @return mixed|boolean 有数据返回$code,没有数据返回false; * */ private function check($str){ if (in_array($str, $this->arr)) { return array_search($str, $this->arr); }elseif (in_array($str, $this->arrs)){ return array_search($str, $this->arrs); }else { return false; } } }
试试其它关键字
微信天气查询
同语言下
.
用net匹配并替换iOS标准的emoji表情符号
.
处理带Emoji表情的的字符串
.
获取微信昵称时 过滤特殊字符
.
通过判断上传文件的头字符来判断文件的类型
.
模拟百度URL加密解密算法
.
以太坊检查地址是否合法
.
实现crontab解析类
.
获取每个月的开始和结束时间
.
图片上传工具类
.
APP手机应用信息采集
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
我的路途
贡献的其它代码
(
1
)
.
微信公众号获取天气查询功能
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3