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[] {" ...
随机推荐
- sklearn保存模型
# View more python tutorials on my Youtube and Youku channel!!! # Youtube video tutorial: https://ww ...
- Java 散列表的实现
摘自http://www.cxybl.com/html/suanfa/201110125445.html 有改动 public class MyHashtable { //表中元素个数 private ...
- 301ReidrectPages中重复记录导致的500 server error
在Umbraco平台开发一个系统时,遇到一个问题,报错500 server error, system is currently unable to handle this request. 按下F1 ...
- PHP获取原生POST数据
To get the Raw Post Data: <?php $postdata = file_get_contents("php://input"); ?> 参考官 ...
- Docker:容器与主机时间不同步问题解决
在Docker容器运行后,可能会发现容器时间与宿主机时间不一致,一般会差8个小时.这样会造成在容器中运行的web程序打出的日志时间与实际时间不一致,如果web程序中有定时任务也会造成影响等,需要对宿主 ...
- BZOJ 1858【线段树】
题意: 0 a b 把 [a, b] 区间内的所有数全变成0 1 a b 把 [a, b] 区间内的所有数全变成1 2 a b 把 [a,b] 区间内的所有数全部取反 3 a b 询问 [a, ...
- 51nod1489(dfs)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1489 题意:中文题诶- 思路:dfs 首先我们要通过攻击第1 ...
- 【转至hejinde的专栏】Axure RP 8最新激活码(可用注册码)
Licensee:米 业成 (STUDENT)Key:nFmqBBvEqdvbiUjy8NZiyWiRSg3yO+PtZ8c9wdwxWse4WprphvSu9sohAdpNnJK5 亲测可用
- 帝都Day7——解放篇
昨天晚上的problems: songfen 坠大子段和,要把[l,r]其中一个数变成P,我们要把最小的数变成p. 当L,R没有取满整个区间,P可以在[L,R]外面!!!!!!!这种情况真是令人绝望. ...
- thinphp5会员注册邮箱验证
1.首先完成邮箱发送http://www.cnblogs.com/jcydd/p/7299750.html 2.在完成会员新增后执行后置函数,在模型类当中 //注册后置函数 protected sta ...