PHP XML和数组互相转换

转换代码如下

    //数组转XML
    function arrayToXml($arr)
    {
        $xml = "";
        foreach ($arr as $key=>$val)
        {
            if (is_numeric($val)){
                $xml.="<".$key.">".$val."$key.">";
            }else{
                 $xml.="<".$key.">$val."]]>$key.">";
            }
        }
        $xml.="";
        return $xml;
    }

    //将XML转为array
    function xmlToArray($xml)
    {    
        //禁止引用外部xml实体
        libxml_disable_entity_loader(true);
        $values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);        
        return $values;
    }

 

Array转XML

$money = 101;
$sender = "方倍工作室";
$obj2 = array();
$obj2['wxappid']             = APPID;
$obj2['mch_id']             = MCHID;
$obj2['mch_billno']            = MCHID.date('YmdHis').rand(1000, 9999);
$obj2['client_ip']            = $_SERVER['REMOTE_ADDR'];
$obj2['re_openid']             = $openid;
$obj2['total_amount']       = $money;
$obj2['min_value']             = $money;
$obj2['max_value']             = $money;
$obj2['total_num']             = 1;
$obj2['nick_name']          = $sender;
$obj2['send_name']          = $sender;
$obj2['wishing']            = "恭喜发财";
$obj2['act_name']              = "方倍工作室送红包";
$obj2['remark']              = "关注公众账号";

转换后

<xml>
  <wxappid>wx1b7559b818e3c123]]>wxappid>
  <mch_id>1235571234mch_id>
  <mch_billno>1235571234201605241726128109mch_billno>
  <client_ip>127.0.0.1]]>client_ip>
  <re_openid>oiPuduGV7gJ_MOSfAWpVmhhgXh-U]]>re_openid>
  <total_amount>101total_amount>
  <min_value>101min_value>
  <max_value>101max_value>
  <total_num>1total_num>
  <nick_name>方倍工作室]]>nick_name>
  <send_name>方倍工作室]]>send_name>
  <wishing>恭喜发财]]>wishing>
  <act_name>方倍工作室送红包]]>act_name>
  <remark>关注公众账号]]>remark>
xml>

 

 

XML转为Array

<xml>
<return_code>SUCCESS]]>return_code>
<return_msg>发放成功]]>return_msg>
<result_code>SUCCESS]]>result_code>
<err_code>MONEY_LIMIT]]>err_code>
<err_code_des>发放成功]>
]]>mch_billno>
<mch_id>1235571234mch_id>
<wxappid>wx1b7559b818e3c123]]>wxappid>
<re_openid>oiPuduGV7gJ_MOSfAWpVmhhgXh-U]]>re_openid>
<total_amount>1total_amount>
xml>

转换后

array(10) {
  ["return_code"]=>
  string(7) "SUCCESS"
  ["return_msg"]=>
  string(12) "发放成功"
  ["result_code"]=>
  string(7) "SUCCESS"
  ["err_code"]=>
  string(11) "MONEY_LIMIT"
  ["err_code_des"]=>
  string(12) "发放成功"
  ["mch_billno"]=>
  string(28) "1235571234201605241651123985"
  ["mch_id"]=>
  string(10) "1235571234"
  ["wxappid"]=>
  string(18) "wx1b7559b818e3c123"
  ["re_openid"]=>
  string(28) "oiPuduGV7gJ_MOSfAWpVmhhgXh-U"
  ["total_amount"]=>
  string(1) "1"
}

 

你可能感兴趣的:(PHP XML和数组互相转换)