ホームページ >バックエンド開発 >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 を使用して 2 つのデータを保存します。1 つはユーザーが送信した最後のメッセージで、もう 1 つはユーザーのアクションを判断するためにランダムに定義された値 (例では 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。