XML消息解析_php

初识php——微信消息处理

 1 <?php
 2 
 3 $test = new weixin();
 4 $test->Message();
 5 
 6 class weixin{
 7     public function Message(){
 8         $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
 9         if (!empty($postStr)){
10             $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
11             $fromUsername = $postObj->FromUserName;
12             $toUsername = $postObj->ToUserName;
13             $createTime = trim($postObj->CreateTime);
14             $createtime = date('Y/m/d H:i:s', $createTime); 
15             $msgType = trim($postObj->MsgType);
16             $result = "FromUserName(来自):{$fromUsername}\r\n"
17             ."ToUserName(发送至):{$toUsername}\r\n"
18             ."CreateTime(时间):{$createtime}\r\n"
19             ."MsgType(消息类型):{$msgType}\r\n";
20             switch ($msgType){
21                 case "event":
22                     $result = $result.$this->receiveEvent($postObj);
23                     break;
24                 case "text":
25                     $result = $result.$this->receiveText($postObj);
26                     break;
27             }
28             echo "原始消息\r\n";
29             echo $postStr ;
30             echo "\r\n\r\n解析结果\r\n";
31             echo $result;
32         }
33         else{
34             echo "";
35             exit;
36         }
37     }
38     
39     private function receiveEvent($postObj){
40         $event =  $postObj->Event;
41         $eventKey = $postObj->EventKey;
42         $result = "Event(事件):{$event}\r\n"
43         ."EventKey(事件值):{$eventKey}";
44         return $result;
45     }
46     
47     private function receiveText($postObj){
48         $keyword = trim($postObj->Content);    
49         $msgId = $postObj->MsgId;
50         $result = "Content(文本内容):{$keyword}\r\n"
51         ."MsgId(文本消息标识号):{$msgId}";
52         return $result;
53     }
54 }
55 
56 ?>

 解析结果:

(1) 菜单单击事件消息解析:

(2)文本消息解析:

 

posted @ 2014-08-09 21:24  N_ll  阅读(340)  评论(0编辑  收藏  举报