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 相关文章推荐
计算2000年01月01日起到指定日的天数
Oct 09 PHP
PHP 日期时间函数的高级应用技巧
Oct 10 PHP
php实现mysql同步的实现方法
Oct 21 PHP
第六章 php目录与文件操作
Dec 30 PHP
如何使用PHP批量去除文件UTF8 BOM信息
Aug 05 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
Jun 26 PHP
PHP中使用localhost连接Mysql不成功的解决方法
Aug 20 PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
Aug 21 PHP
浅谈PHP Cookie处理函数
Jun 10 PHP
iOS10推送通知开发教程
Sep 19 PHP
php简单生成一组与多组随机字符串的方法
May 09 PHP
PHP xpath提取网页数据内容代码解析
Jul 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中使用灵巧的体系结构
2006/10/09 PHP
ThinkPHP之A方法实例讲解
2014/06/20 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
lib.utf.js
2007/08/21 Javascript
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
jQuery MD5加密实现代码
2010/03/15 Javascript
juqery 学习之三 选择器 可见性 元素属性
2010/11/25 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
javascript中一些util方法汇总
2015/06/10 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
jQuery EasyUI Tab 选项卡问题小结
2016/08/16 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
2017/05/02 Javascript
JQueryMiniUI按照时间进行查询的实现方法
2017/06/07 jQuery
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
Python中音频处理库pydub的使用教程
2017/06/07 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
MySQL面试题
2014/01/12 面试题
职业教育毕业生求职信
2013/11/09 职场文书
会员活动策划方案
2014/08/19 职场文书
教师作风整顿个人剖析材料
2014/10/10 职场文书
党的群众路线教育实践活动个人整改方案
2014/10/25 职场文书
2015教师个人师德工作总结
2015/10/23 职场文书
深入理解python多线程编程
2021/04/18 Python
css 边框添加四个角的实现代码
2021/10/16 HTML / CSS
uni-app 微信小程序授权登录的实现步骤
2022/02/18 Javascript