PHP memcache在微信公众平台的应用方法示例


Posted in PHP onSeptember 13, 2017

本文实例讲述了PHP memcache在微信公众平台的应用方法。分享给大家供大家参考,具体如下:

现在微信公众平台大多数互动都是用户发送信息->微信分析并返回结果,这种模式功能比较单一。这里介绍另一种互动模式:用户发送信息->微信分析信息并提示下一步操作->用户发送信息->.......->微信返回结果。本文介绍运用sae里的memcache实现以上模式。

思路:

1、用户发送消息,微信会记录用户唯一的openid,将它的值赋予$fromUsername。

2、用memcache保存两个数据,一个为上一次用户发送的消息,另一个随便定义一个值(示例中为1),做判断用户动作之用。

3、用$fromUsername 作为key定位。

示例代码如下:

<?php
/**
 * wechat php test
 */
//调用mecache
$mc=memcache_init();
//接受消息,直接用微信官方的示例代码
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
   if (!empty($postStr)){
   $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
   $fromUsername = $postObj->FromUserName;
   $toUsername = $postObj->ToUserName;
   $keyword = trim($postObj->Content);
   $time = time();
   $textTpl = "<xml>
          <ToUserName><![CDATA[%s]]></ToUserName>
          <FromUserName><![CDATA[%s]]></FromUserName>
          <CreateTime>%s</CreateTime>
          <MsgType><![CDATA[%s]]></MsgType>
          <Content><![CDATA[%s]]></Content>
          <FuncFlag>0</FuncFlag>
          </xml>";
   //定义变量last_step,记录上一次动作
   $last_step=$mc->get($fromUsername."step");
   //定义变量last_data,记录上一次数据
   $last_data=$mc->get($fromUsername."data");
   if(!empty( $keyword )){
    //判断用户动作
     if($last_step!=1){
     //将用户输入的数据保存至memcache
     $mc->set($fromUsername."data",$keyword,0,120);
     //记录用户这一次动作,值设为1
     $mc->set($fromUsername."step",1,0,120);
     $msgType = "text";
     $contentStr = "请再输入一个值:";
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    echo $resultStr;
    } else {
    //清空memcach动作
    $mc->delete($fromUsername."step");
    //清空memcach数据
    $mc->delete($fromUsername."data");
    $msgType = "text";
    $contentStr = "你输入的第一个值为:".$last_data."\n 第二个值为:".$keyword;
    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    echo $resultStr;
    }
   }
  } else {
    echo "";
  }
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 程序员应该使用的10个组件
Oct 31 PHP
ThinkPHP中实例Model方法的区别说明
Aug 21 PHP
php中使用explode查找某个字符是否存在的方法
Jul 12 PHP
兼容firefox,chrome的网页灰度效果
Aug 08 PHP
smarty模板中拼接字符串的方法
Feb 14 PHP
php中session过期时间设置及session回收机制介绍
May 05 PHP
PHP实现一维数组转二维数组的方法
Feb 25 PHP
php使用MySQL保存session会话的方法
Jun 18 PHP
YII2框架中excel表格导出的方法详解
Jul 21 PHP
PHP基于PDO扩展操作mysql数据库示例
Dec 24 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
Apr 02 PHP
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
Apr 16 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
Sep 13 #PHP
PHP 实现公历日期与农历日期的互转换
Sep 13 #PHP
php生成条形码的图片的实例详解
Sep 13 #PHP
php之可变函数的实例详解
Sep 13 #PHP
PHP实现一个多功能购物网站的案例
Sep 13 #PHP
php之可变变量的实例详解
Sep 12 #PHP
PHP清除缓存的几种方法总结
Sep 12 #PHP
You might like
PHP中常用的输出函数总结
2014/09/22 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
PHP实现的AES 128位加密算法示例
2019/09/16 PHP
Prototype ObjectRange对象学习
2009/07/19 Javascript
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
js优化针对IE6.0起作用(详细整理)
2012/12/25 Javascript
ExtJS实现文件下载的方法实例
2013/11/09 Javascript
webpack配置文件和常用配置项介绍
2017/04/28 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
如何使node也支持从url加载一个module详解
2018/06/05 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
2020/02/12 Javascript
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
2020/03/07 Javascript
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
python不换行之end=与逗号的意思及用途
2017/11/21 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
TensorFlow实现简单卷积神经网络
2018/05/24 Python
pandas计数 value_counts()的使用
2019/06/24 Python
python相对企业语言优势在哪
2020/06/12 Python
Python之字典对象的几种创建方法
2020/09/30 Python
python cookie反爬处理的实现
2020/11/01 Python
中专生自荐信
2013/10/12 职场文书
上班上网检讨书
2014/01/29 职场文书
高一学生评语大全
2014/04/25 职场文书
幼儿园区域活动总结
2014/05/08 职场文书
法律专业求职信
2014/05/24 职场文书
2014年国庆晚会主持词
2014/09/19 职场文书
工作检讨书怎么写
2014/10/10 职场文书
劳模先进事迹材料
2014/12/24 职场文书
交通事故责任认定书
2015/08/06 职场文书
详解CocosCreator项目结构机制
2021/04/14 Javascript