程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php版微信公眾平台接口參數調試實現判斷用戶行為的方法,php公眾

php版微信公眾平台接口參數調試實現判斷用戶行為的方法,php公眾

編輯:關於PHP編程

php版微信公眾平台接口參數調試實現判斷用戶行為的方法,php公眾


本文實例講述了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程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved