zoukankan      html  css  js  c++  java
  • xml转数组

    <?php
    
    $str1 = '<xml><appid><![CDATA[wxba5a33c7647a0002]]></appid>
    <attach><![CDATA[12123]]></attach>
    <bank_type><![CDATA[CFT]]></bank_type>
    <cash_fee><![CDATA[1]]></cash_fee>
    <fee_type><![CDATA[CNY]]></fee_type>
    <is_subscribe><![CDATA[N]]></is_subscribe>
    <mch_id><![CDATA[1491300832]]></mch_id>
    <nonce_str><![CDATA[sbojth6jkjifmesfrd8ov3nzcex090hv]]></nonce_str>
    <openid><![CDATA[orOH00CLjYPLVQ5oj6UbmGlHAAAA]]></openid>
    <out_trade_no><![CDATA[149130083220171117105752]]></out_trade_no>
    <result_code><![CDATA[SUCCESS]]></result_code>
    <return_code><![CDATA[SUCCESS]]></return_code>
    <sign><![CDATA[58A616502EA22FEB5B3981BCA5246F21]]></sign>
    <time_end><![CDATA[20171117105757]]></time_end>
    <total_fee>1</total_fee>
    <trade_type><![CDATA[JSAPI]]></trade_type>
    <transaction_id><![CDATA[4200000015201711175187860938]]></transaction_id>
    </xml>';
    //处理xml字符串
    $str = str_replace('<xml>', '', $str1);
    //把xml转化成多个<a>...</a>格式的数组
    preg_match_all('/<w+>.+</w+>/', $str, $arr);
    $axml = [];
    //遍历处理得到的数组
    foreach ($arr[0] as $value) { //遍历解析得到的数组
        //得到一个假key
        preg_match_all('/<w+>/', $value, $ks); 
        //处理假key
        $k = substr($ks[0][0],1,-1);
        //得到一个假value
        preg_match_all('/><.+></', $value, $vs);  
        //处理假value
        if (empty($vs[0][0])) {
            preg_match_all('/>w+</', $value, $v1);
            $v = substr($v1[0][0],1,-1);
        }else{
            $v = substr($vs[0][0],10,strlen($vs[0][0])-14);
        }
        $axml[$k] = $v;
    }
    var_dump($axml);
    

      

  • 相关阅读:
    String和StringBuilder和StringBuffer
    多态
    组件
    反向代理
    基础知识
    reflection
    v-model 与 v-bind:model
    tomcat端口占用问题
    socket
    简要概括内存机制
  • 原文地址:https://www.cnblogs.com/fanhuo/p/9752818.html
Copyright © 2011-2022 走看看