欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP memcache在微信公眾平臺的應(yīng)用方法示例

 更新時間:2017年09月13日 11:58:40   作者:macwhirr123  
這篇文章主要介紹了PHP memcache在微信公眾平臺的應(yīng)用方法,結(jié)合具體實(shí)例形式分析了php使用memcache保存用戶訪問記錄與響應(yīng)用戶訪問并給出提示信息的交互模式實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了PHP memcache在微信公眾平臺的應(yīng)用方法。分享給大家供大家參考,具體如下:

現(xiàn)在微信公眾平臺大多數(shù)互動都是用戶發(fā)送信息->微信分析并返回結(jié)果,這種模式功能比較單一。這里介紹另一種互動模式:用戶發(fā)送信息->微信分析信息并提示下一步操作->用戶發(fā)送信息->.......->微信返回結(jié)果。本文介紹運(yùn)用sae里的memcache實(shí)現(xiàn)以上模式。

思路:

1、用戶發(fā)送消息,微信會記錄用戶唯一的openid,將它的值賦予$fromUsername。

2、用memcache保存兩個數(shù)據(jù),一個為上一次用戶發(fā)送的消息,另一個隨便定義一個值(示例中為1),做判斷用戶動作之用。

3、用$fromUsername 作為key定位。

示例代碼如下:

<?php
/**
 * wechat php test
 */
//調(diào)用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,記錄上一次數(shù)據(jù)
   $last_data=$mc->get($fromUsername."data");
   if(!empty( $keyword )){
    //判斷用戶動作
     if($last_step!=1){
     //將用戶輸入的數(shù)據(jù)保存至memcache
     $mc->set($fromUsername."data",$keyword,0,120);
     //記錄用戶這一次動作,值設(shè)為1
     $mc->set($fromUsername."step",1,0,120);
     $msgType = "text";
     $contentStr = "請?jiān)佥斎胍粋€值:";
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    echo $resultStr;
    } else {
    //清空memcach動作
    $mc->delete($fromUsername."step");
    //清空memcach數(shù)據(jù)
    $mc->delete($fromUsername."data");
    $msgType = "text";
    $contentStr = "你輸入的第一個值為:".$last_data."\n 第二個值為:".$keyword;
    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    echo $resultStr;
    }
   }
  } else {
    echo "";
  }
?>

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP微信開發(fā)技巧匯總》、《PHP編碼與轉(zhuǎn)碼操作技巧匯總》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP中json格式數(shù)據(jù)操作技巧匯總》及《PHP針對XML文件操作技巧總結(jié)

希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評論