PHP中XML和数组互相转换的方法
转换代码如下
//数组转XML
function arrayToXml($arr)
{
$xml = "<xml>";
foreach ($arr as $key=>$val)
{
if (is_numeric($val)){
$xml.="<".$key.">".$val."</".$key.">";
}else{
$xml.="<".$key."><![CDATA[".$val."]]></".$key.">";
}
}
$xml.="</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><![CDATA[wx1b7559b818e3c123]]></wxappid>
<mch_id>1235571234</mch_id>
<mch_billno>1235571234201605241726128109</mch_billno>
<client_ip><![CDATA[127.0.0.1]]></client_ip>
<re_openid><![CDATA[oiPuduGV7gJ_MOSfAWpVmhhgXh-U]]></re_openid>
<total_amount>101</total_amount>
<min_value>101</min_value>
<max_value>101</max_value>
<total_num>1</total_num>
<nick_name><![CDATA[方倍工作室]]></nick_name>
<send_name><![CDATA[方倍工作室]]></send_name>
<wishing><![CDATA[恭喜发财]]></wishing>
<act_name><![CDATA[方倍工作室送红包]]></act_name>
<remark><![CDATA[关注公众账号]]></remark>
</xml>
XML转为Array
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[发放成功]]></return_msg>
<result_code><![CDATA[SUCCESS]]></result_code>
<err_code><![CDATA[MONEY_LIMIT]]></err_code>
<err_code_des><![CDATA[发放成功]></err_code_des>
<mch_billno><![CDATA[1235571234201605241651123985]]></mch_billno>
<mch_id>1235571234</mch_id>
<wxappid><![CDATA[wx1b7559b818e3c123]]></wxappid>
<re_openid><![CDATA[oiPuduGV7gJ_MOSfAWpVmhhgXh-U]]></re_openid>
<total_amount>1</total_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和数组互相转换的方法的更多相关文章
- 在PHP中使用SPL库中的对象方法进行XML与数组的转换
虽说现在很多的服务提供商都会提供 JSON 接口供我们使用,但是,还是有不少的服务依然必须使用 XML 作为接口格式,这就需要我们来对 XML 格式的数据进行解析转换.而 PHP 中并没有像 json ...
- php中 xml json 数组 之间相互转换
php中 xml json 数组 之间相互转换 1 数组转json $result = array( 'status' =>$status, 'message'=>$message, ' ...
- Python中xml和dict格式转换
在做接口自动化的时候,请求数据之前都是JSON格式的,Python有自带的包来解决.最近在做APP的接口,遇到XML格式的请求数据,费了很大劲来解决,解决方式是:接口文档拿到的是XML,在线转化为js ...
- Java中List与数组互相转换
1.说明 在Java中,经常遇到需要List与数组互相转换的场景. List转换成数组,可以使用List的toArray()或者toArray(T[] a)方法. 数组转换成List,可以使用Arra ...
- javascript中字符串与数组互转的方法分享
说明:1.join()方法:用于把数组中的所有元素放入一个字符串,元素是通过指定的分隔符进行分隔的.指定分隔符方法join("$");其中$可以是任意字符2.split()方法:用 ...
- PHP XML和数组互相转换
//数组转XML function arrayToXml($arr) { $xml = "<xml>"; foreach ($arr as $key=>$val) ...
- java 中集合和数组互相转换
package test; import java.util.Arrays;import java.util.List; /** * Created by Administrator on 2016/ ...
- c#中 xml和json 互相转换
--xml转json XmlDocument doc = new XmlDocument(); doc.LoadXml(result); string json = Newtonsoft.Json.J ...
- java中List与数组的转换
1.数组转换成List public static <T> List<T> asList(T... a) String[] arr = new String[] {" ...
随机推荐
- SpringBoot02 Controller的使用、数据库操作、事物管理、修改banner
1 Controller的使用 特点:编程技巧和SpringMVC几乎完全一样 注意:@RestController = @Controller + @ResponseBody 注意:读取路径参数和请 ...
- bos物流面试题
BOS物流项目问题汇总 1 请描述一下这个系 统? 从两个方面回答, 第一个方面:系统背景及系统概述 本系统是基于B/S架构而设计开发的,是某物流公司的一个后台管理系统,属于物流公司整个ERP平台的一 ...
- super关键字主要有以下两种用途
super关键字主要有以下两种用途. 1.调用父类的构造方法 子类可以调用由父类声明的构造方法.但是必须在子类的构造方法中使用super关键字来调用.其具体的语法格式如下: super([参数列表]) ...
- 通过sessionid提取这个用户在服务器中保存的session变量
- redis学习总结1
Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.和普通的Key-Value结构不同,Redis的Key支持灵活 ...
- Solr 6.1学习笔记 -- spellcheck 组件
<searchComponent name="spellcheck" class="solr.SpellCheckComponent"> <s ...
- idea中使用Git对项目进行版本控制
- Git练习2 使用码云
- python依赖文件
生成 pip freeze >requirements.txt 安装 pip install -r requirements.txt
- H5页面开发的touchmove事件
在做一屏滚动的H5页面的时候,必须移除touchmove事件,如果不移除,在安卓机上会触发微信原生的向下滚动拉出刷新.在IOS上出现上下都可以继续滑动,所以需要移除document的touchmove ...