php中将SimpleXMLElement Object数组转化为普通数组

做微信开发,鉴于微信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
)

这样操作起来就容易多了。

你可能感兴趣的:(php中将SimpleXMLElement Object数组转化为普通数组)