本文实例讲述了PHP版微信公众平台接口参数调试实现判断用户行为的方法。分享给大家供大家参考,具体如下:
微信开发的时候,发现有个重要的变量$postObj,获得了一个xml结构装入的对象里因为用户发来的事件,之前只知道用户发送一个消息,我进行处理.
今天要弄个用户订阅就给推送一个消息的功能,却发现不知道如何判断用户是订阅的操作,还是取消订阅,还是发消息,代码如下:
PHP;">
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是之前没有封装的字符串,直接打印,即可知道用户的行为了,测试输出的文件如下:
MsgType即可判断用户行为text表示用户输入了一条文本信息,如果是订阅,那么就是event 大家自己测试吧.
这样就可以得到具体的事件类型了.
MsgType;能判断用户的行为,后续的操作就方便多了.
附上写入日志文件的代码:
‘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程序设计有所帮助。