国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php版微信公眾平臺接口參數(shù)調(diào)試實(shí)現(xiàn)判斷用戶行為的方法

2024-05-04 23:50:09
字體:
供稿:網(wǎng)友

本文實(shí)例講述了php版微信公眾平臺接口參數(shù)調(diào)試實(shí)現(xiàn)判斷用戶行為的方法。分享給大家供大家參考,具體如下:

微信開發(fā)的時候,發(fā)現(xiàn)有個重要的變量$postObj,獲得了一個xml結(jié)構(gòu)裝入的對象里因為用戶發(fā)來的事件,之前只知道用戶發(fā)送一個消息,我進(jìn)行處理.

今天要弄個用戶訂閱就給推送一個消息的功能,卻發(fā)現(xiàn)不知道如何判斷用戶是訂閱的操作,還是取消訂閱,還是發(fā)消息,代碼如下:

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+"); //。。。。。}

發(fā)現(xiàn)$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 大家自己測試吧.

一個新用戶關(guān)注公眾賬號發(fā)送的消息的例子,代碼如下:

<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;能判斷用戶的行為,后續(xù)的操作就方便多了.

附上寫入日志文件的代碼:

‘r' 只讀方式打開,將文件指針指向文件頭。

‘r+' 讀寫方式打開,將文件指針指向文件頭。

‘w' 寫入方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建之。

‘w+' 讀寫方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建之。

‘a' 寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之。

‘a+' 讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之。

PHP實(shí)例代碼如下:

function writeover2($filename,$data,$method="rb+",$iflock=1){ @touch($filename);/*文件不存在則創(chuàng)建之.可以采用file_exists驗證并其他創(chuàng)建文件函數(shù)代替.測試結(jié)果效率相當(dāng)*/ $handle=@fopen($filename,$method); if($iflock){  flock($handle,LOCK_EX); } fwrite($handle,$data); if($method=="rb+") ftruncate($handle,strlen($data)); fclose($handle);}

希望本文所述對大家PHP程序設(shè)計有所幫助。


注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 南召县| 井研县| 额济纳旗| 马边| 舞阳县| 隆化县| 巨野县| 桐柏县| 临朐县| 湾仔区| 宝丰县| 中方县| 汉川市| 钦州市| 达州市| 蒙城县| 大兴区| 运城市| 德江县| 唐河县| 满洲里市| 荃湾区| 延川县| 罗源县| 渝北区| 富平县| 鄯善县| 奉新县| 芦山县| 光山县| 梓潼县| 报价| 德化县| 郸城县| 神农架林区| 五原县| 天等县| 馆陶县| 南部县| 纳雍县| 澜沧|