递归实现php数组转xml的代码分享


Posted in PHP onMay 14, 2015

PHP中将数组转为xml的需求是常见的,而且实现方法也有很多种,百度找了一下各种实现方法,但是基本是借组一些组件啥的。我就自己写了一个字符串拼组的方法,支持多维数组。仅供参考,不足之处敬请不吝赐教!

/**
*  将数组转换为xml
*  @param array $data  要转换的数组
*  @param bool $root   是否要根节点
*  @return string     xml字符串
*  @author Dragondean
*  @url  http://www.cnblogs.com/dragondean
*/
function arr2xml($data, $root = true){
  $str="";
  if($root)$str .= "<xml>";
  foreach($data as $key => $val){
    if(is_array($val)){
      $child = arr2xml($val, false);
      $str .= "<$key>$child</$key>";
    }else{
      $str.= "<$key><![CDATA[$val]]></$key>";
    }
  }
  if($root)$str .= "</xml>";
  return $str;
}

上面是实现的方法,第一个参数是你要转换的数组,第二个可选参数设定是否需要加<xml>根节点,默认是需要的。

测试代码:

$arr=array('a'=>'aaa','b'=>array('c'=>'1234' , 'd' => "asdfasdf"));

echo arr2xml($arr);

代码执行后的结果为:

<xml><a><![CDATA[aaa]]></a><b><c><![CDATA[1234]]></c><d><![CDATA[asdfasdf]]></d></b></xml>

以上所述就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
多数据表共用一个页的新闻发布
Oct 09 PHP
PHP随机字符串生成代码(包括大小写字母)
Jun 24 PHP
php隐藏IP地址后两位显示为星号的方法
Nov 21 PHP
thinkphp连贯操作实例分析
Nov 22 PHP
Thinkphp单字母函数使用指南
May 08 PHP
php 二维数组时间排序实现代码
Nov 19 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
Apr 10 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
Jun 19 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
Dec 28 PHP
Laravel模型间关系设置分表的方法示例
Apr 21 PHP
PHP simplexml_load_string()函数实例讲解
Feb 03 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 PHP
php编写批量生成不重复的卡号密码代码
May 14 #PHP
php编写的抽奖程序中奖概率算法
May 14 #PHP
深入浅出php socket编程
May 13 #PHP
PHP中的traits简单使用实例
May 13 #PHP
PHP中的traits实现代码复用使用实例
May 13 #PHP
浅谈本地WAMP环境的搭建
May 13 #PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
May 13 #PHP
You might like
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
PHP Stream_*系列函数
2010/08/01 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
2014/06/25 PHP
php版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
快速排序 php与javascript的不同之处
2011/02/22 Javascript
Javascript表格翻页效果的具体实现
2013/10/05 Javascript
js定时器(执行一次、重复执行)
2014/03/07 Javascript
屏蔽相应键盘按钮操作
2014/03/10 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
浅谈使用MVC模式进行JavaScript程序开发
2015/11/10 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
jQuery常用样式操作实例分析(获取、设置、追加、删除、判断等)
2016/09/08 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
一文了解Vue中的nextTick
2019/05/06 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
2019/05/16 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
Python做文本按行去重的实现方法
2016/10/19 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
2018/05/10 Python
Django之Mode的外键自关联和引用未定义的Model方法
2018/12/15 Python
Python元组常见操作示例
2019/02/19 Python
Pytorch中实现只导入部分模型参数的方式
2020/01/02 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
python热力图实现简单方法
2021/01/29 Python
《两个铁球同时着地》教学反思
2014/02/13 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
暑期社会实践心得体会
2014/09/02 职场文书
校园文化艺术节宣传标语
2014/10/09 职场文书
体育部部长竞选稿
2015/11/21 职场文书
提升Nginx性能的一些建议
2021/03/31 Servers
多台电脑共享文件怎么设置?多台电脑共享文件操作教程
2022/04/08 数码科技
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL