做微信開發,鑒於微信POST的消息是XML數據包,通過SimpleXMLElement Object獲取的數據不好操作,需要轉化為普通數組。
網上找了很多方法都不理想,發現通過json_decode和json_encode可以轉化,遂分享給大家。
$postStr = '<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[this is a test]]></Content> <MsgId>1234567890123456</MsgId> </xml>'; $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $jsonStr = json_encode($postObj); $jsonArray = json_decode($jsonStr,true); print_r($jsonArray);
輸出結果為:
Array ( [ToUserName] => toUser [FromUserName] => fromUser [CreateTime] => 1348831860 [MsgType] => text [Content] => this is a test [MsgId] => 1234567890123456 )
這樣操作起來就容易多了。
