欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

php版微信公众平台接口参数调试实现判断用户行为的方法

程序员文章站 2024-04-02 14:26:58
本文实例讲述了php版微信公众平台接口参数调试实现判断用户行为的方法。分享给大家供大家参考,具体如下: 微信开发的时候,发现有个重要的变量$postobj,获得了一个xm...

本文实例讲述了php版微信公众平台接口参数调试实现判断用户行为的方法。分享给大家供大家参考,具体如下:

微信开发的时候,发现有个重要的变量$postobj,获得了一个xml结构装入的对象里因为用户发来的事件,之前只知道用户发送一个消息,我进行处理.

今天要弄个用户订阅就给推送一个消息的功能,却发现不知道如何判断用户是订阅的操作,还是取消订阅,还是发消息,代码如下:

public function responsemsg()
{
 global $db;
 //get post data, may be due to the different environments
 $poststr = $globals["http_raw_post_data"];
 $postobj = simplexml_load_string($poststr, 'simplexmlelement', libxml_nocdata);
 writeover("msg.txt",$poststr."rn","a+");
 //。。。。。
}

发现$poststr是之前没有封装的字符串,直接打印,即可知道用户的行为了,测试输出的文件如下:

<xml><tousername><![cdata[gh_a64528aca3b]]></tousername>
<fromusername><![cdata[osgh_jvetxjslfk_6qsigevasyk]]></fromusername>
<createtime>1394705044</createtime>
<msgtype><![cdata[text]]></msgtype>
<content><![cdata[ha]]></content>
<msgid>5990212551746www.phpfensi.com353512</msgid>
</xml>

msgtype即可判断用户行为text表示用户输入了一条文本信息,如果是订阅,那么就是event 大家自己测试吧.

一个新用户关注公众账号发送的消息的例子,代码如下:

<xml><tousername><![cdata[gh_a5218aca3b]]></tousername>
<fromusername><![cdata[osgh_jvetxjslfk_6qsigevyk]]></fromusername>
<createtime>1394706271</createtime>
<msgtype><![cdata[event]]></msgtype>
<event><![cdata[subscribe]]></event>
<eventkey><![cdata[]]></eventkey>
</xml>

这样就可以得到具体的事件类型了.

$msgtype = $postobj->msgtype;能判断用户的行为,后续的操作就方便多了.

附上写入日志文件的代码:

‘r' 只读方式打开,将文件指针指向文件头。

‘r+' 读写方式打开,将文件指针指向文件头。

‘w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

‘w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

‘a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

‘a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

php实例代码如下:

function writeover2($filename,$data,$method="rb+",$iflock=1)
{
 @touch($filename);/*文件不存在则创建之.可以采用file_exists验证并其他创建文件函数代替.测试结果效率相当*/
 $handle=@fopen($filename,$method);
 if($iflock){
  flock($handle,lock_ex);
 }
 fwrite($handle,$data);
 if($method=="rb+") ftruncate($handle,strlen($data));
 fclose($handle);
}

更多关于php相关内容感兴趣的读者可查看本站专题:《php微信开发技巧汇总》、《php编码与转码操作技巧汇总》、《php网络编程技巧总结》、《php基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家php程序设计有所帮助。