Maison  >  Article  >  développement back-end  >  Exemples d'application de PHP memcache sur la plateforme publique WeChat

Exemples d'application de PHP memcache sur la plateforme publique WeChat

巴扎黑
巴扎黑original
2017-09-15 09:33:301402parcourir

Cet article présente principalement la méthode d'application de PHP memcache sur la plate-forme publique WeChat et analyse les compétences de mise en œuvre du mode interactif de PHP utilisant memcache pour enregistrer les enregistrements d'accès des utilisateurs, répondre aux accès des utilisateurs et fournir des informations rapides basées sur des exemples spécifiques. dans le besoin Vous pouvez vous référer à ce qui suit

Cet article décrit la méthode d'application de PHP memcache sur la plateforme publique WeChat. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

De nos jours, la plupart des interactions sur la plateforme publique WeChat sont des utilisateurs qui envoient des messages -> WeChat analyse et renvoie les résultats. Ce mode a une fonction relativement unique. Voici un autre mode interactif : l'utilisateur envoie des informations -> WeChat analyse les informations et propose l'étape suivante -> l'utilisateur envoie des informations ->.....-> Cet article présente l'utilisation de Memcache dans SAE pour implémenter le mode ci-dessus.

Idée :

1. Lorsque l'utilisateur envoie un message, WeChat enregistrera l'openid unique de l'utilisateur et attribuera sa valeur à $fromUsername.

2. Utilisez Memcache pour enregistrer deux données, l'une est le message envoyé par le dernier utilisateur et l'autre est une valeur définie aléatoirement (1 dans l'exemple) pour juger les actions de l'utilisateur.

3. Utilisez $fromUsername comme positionnement clé.

L'exemple de code est le suivant :


<?php
/**
 * wechat php test
 */
//调用mecache
$mc=memcache_init();
//接受消息,直接用微信官方的示例代码
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
   if (!empty($postStr)){
   $postObj = simplexml_load_string($postStr, &#39;SimpleXMLElement&#39;, 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 "";
  }
?>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn