php中将xml转为Array

最近在做微信支付相关的接口,微信支付成功后返回的数据是XML的,并且包含CDATA这样的,所以需要将这些数据转成array或者json。

第一步,获取微信支付成功以后的callback返回值:

$post_data = file_get_contents('php://input');
Logger::debug('微信支付回调结果: '. $post_data);

可以看到打印的数据如下:

<xml><appid><![CDATA[wx042ae54b1d186aad]]></appid>
<bank_type><![CDATA[CFT]]></bank_type>
<cash_fee><![CDATA[1]]></cash_fee>
<device_info><![CDATA[WEB]]></device_info>
<fee_type><![CDATA[CNY]]></fee_type>
<is_subscribe><![CDATA[Y]]></is_subscribe>
<mch_id><![CDATA[1513364391]]></mch_id>
<nonce_str><![CDATA[LWPshLBpkWVMRAXt]]></nonce_str>
<openid><![CDATA[ohBubwT1XQ3inelrwgVHGz7rHn58]]></openid>
<out_trade_no><![CDATA[1620899321807450]]></out_trade_no>
<result_code><![CDATA[SUCCESS]]></result_code>
<return_code><![CDATA[SUCCESS]]></return_code>
<sign><![CDATA[4E67B601C0927739C128EB93E698B124]]></sign>
<sub_mch_id><![CDATA[1514633791]]></sub_mch_id>
<time_end><![CDATA[20181226154057]]></time_end>
<total_fee>1</total_fee>
<trade_type><![CDATA[JSAPI]]></trade_type>
<transaction_id><![CDATA[4200000229201812263321892728]]></transaction_id>
</xml>
需要将xml数据解析成Array或者json,用simplexml_load_string函数即可。
//将XML转为array        
$xml_obj=simplexml_load_string($post_data, 'SimpleXMLElement', LIBXML_NOCDATA);
$array_data = json_decode(json_encode($xml_obj),true);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值