>백엔드 개발 >PHP 튜토리얼 >WeChat 공개 플랫폼의 PHP Memcache 적용 예

WeChat 공개 플랫폼의 PHP Memcache 적용 예

巴扎黑
巴扎黑원래의
2017-09-15 09:33:301433검색

이 글에서는 주로 WeChat 공개 플랫폼에서 PHP Memcache를 적용하는 방법을 소개합니다. Memcache를 사용하여 사용자 액세스 기록을 저장하고 사용자 액세스에 응답하며 필요한 친구에게 즉각적인 정보를 제공하는 PHP의 대화형 모드 구현 기술을 분석합니다. 다음

이 기사의 예는 WeChat 공개 플랫폼에서 PHP Memcache를 적용하는 방법을 설명합니다. 참고용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

이제 WeChat 공개 플랫폼의 대부분의 상호 작용은 사용자가 메시지를 보내는 것입니다. -> WeChat은 결과를 분석하고 반환합니다. 여기에 또 다른 대화형 모드가 있습니다. 사용자가 정보를 보냅니다. -> WeChat이 정보를 분석하고 다음 단계를 안내합니다. -> 사용자가 정보를 보냅니다. ->...-> WeChat이 결과를 반환합니다. 이 기사에서는 위 모드를 구현하기 위해 sae에서 memcache를 사용하는 방법을 소개합니다.

아이디어:

1. 사용자가 메시지를 보내면 WeChat은 사용자의 고유한 openid를 기록하고 해당 값을 $fromUsername에 할당합니다.

2. memcache를 사용하여 두 개의 데이터를 저장합니다. 하나는 사용자가 보낸 마지막 메시지이고 다른 하나는 사용자 작업을 판단하기 위해 무작위로 정의된 값(예: 1)입니다.

3. $fromUsername을 키 위치 지정으로 사용하세요.

샘플 코드는 다음과 같습니다.


<?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 "";
  }
?>

위 내용은 WeChat 공개 플랫폼의 PHP Memcache 적용 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.