/**
 * 数据XML编码
 * @param mixed  $data 数据
 * @param string $item 数字索引时的节点名称
 * @param string $id   数字索引key转换为的属性名
 * @return string
 */

function data_to_xml($data, $item='item', $id='id') {$xml = $attr = '';foreach ($data as $key => $val) {if(is_numeric($key)){$id && $attr = " {$id}=\"{$key}\"";//  {$id}=\"{$key}\"执行后 id="1"  其中\为转义字符,转义双引号字符$key  = $item;}$xml    .=  "<{$key}{$attr}>";//$key为节点名 $attr为属性$xml  .=  (is_array($val) || is_object($val)) ? data_to_xml($val, $item, $id) : $val;$xml    .=  "</{$key}>";}return $xml;
}
$data = array('note'=>array('from'=>'liming','to'=>'xiaowang','message'=>'hello,world!')
);
$a=data_to_xml($data);
var_dump($a);

输出结果为

string '<note><from>liming</from><to>xiaowang</to><message>hello,world!</message></note>'(length=80)

注意:结果格式有手动改了一下!

转载于:https://blog.51cto.com/11410485/1833518

ThinkPHP源码学习 data_to_xml函数 数据转成xml格式相关推荐

  1. Opencascade源码学习之模型数据

    Opencascade源码学习之模型数据 1.模型数据 2.几何工具 1.插值和拟合 1.分析一组点 2.基本插值和近似 3.2D 插值 4.3D 插值 5.2D 拟合 6.3D 拟合 7.曲面拟合 ...

  2. Opencascade源码学习之模型数据——TKGeomBase模块文件介绍

    Opencascade源码学习之模型数据--TKGeomBase模块文件介绍 1.AdvApp2Var 2.AppCont 3.AppDef 4.AppParCurves 5.Approx 6.Bnd ...

  3. ThinkPHP源码学习之I方法

    PHP新人一个,最近在做一个项目,用的是ThinkPHP,想往深处学习,特意学习ThinkPHP的源码并作笔记,以记录这些容易忘记的东西,废话不多说,开始. 官网说明: I方法是ThinkPHP众多单 ...

  4. ThinkPHP源码学习之一

    接触TP的时间已久,中间因为工作原因没能一直在TP上有所深入学习,今日,在原公司离职之日.重新踏上TP的学习.这次想深入的研究一遍源码.仅此作为自己在TP路上的见证. thinkPHP的引导文件run ...

  5. Python源码学习:Python函数浅析-函数闭包

    Python源码分析 本文环境python2.5系列 参考书籍<<Python源码剖析>> 上一篇分析了函数参数的分析后,本文分析函数闭包的实现.函数闭包即函数定义和函数表达式 ...

  6. Python源码学习:Python函数浅析-有参函数

    Python源码分析 本文环境python2.5系列 参考书籍<<Python源码剖析>> 继续上一篇无参函数的调用后,本文将分析Python中的有参函数的大致流程,在Pyth ...

  7. Python源码学习:Python函数浅析-无参函数

    Python源码分析 本文环境python2.5系列 参考书籍<<Python源码剖析>> 本文会大致分析一下Python中的函数机制.在Python中,函数是一个比较重要的类 ...

  8. 1、ThinkPHP源码学习-致命错误捕获及自定义错误输出

    首先在 Think\Think::start() 静态方法中,使用 register_shutdown_function 函数注册致命错误处理方法. register_shutdown_functio ...

  9. srsLTE源码学习:协议数据单元PDU:pdu.h

    TX与RX TXD 发送数据 Transmit(tx) Data 的简写形式. RXD 接收数据 Receive(rx) Data 的简写形式. x没有特定的意思,就是一开始这么写,之后都这么用了,约 ...

最新文章

  1. 现学现用!学完计组后,我马上在「我的世界」造了台显示器
  2. 搭建自己的前端自动化测试脚手架(一)
  3. python编程从入门到实践看完了看什么-小白Python编程从入门到实践——列表是什么...
  4. JavaScript 闭包详解
  5. 输变电设备物联网传感器数据通信规约_输变电设备“智慧物联”提升电网质效...
  6. 夺命雷公狗---DEDECMS----14dedecms首页导航条的完成
  7. “21天好习惯”第一期-11
  8. Android【报错】This class should be public (android.support.v7.internal.widget.ActionBarView.HomeView)
  9. EBS采购订单创建发票
  10. WS小世界网络模型构造算法
  11. Vue组件中关于@click.native.prevent事件
  12. 鹏鹏:You have 14 unapplied migration(s). Your project may not work properly。。。。报错!
  13. 关于Dva中.webpackrc的配置
  14. .sh文件规则 .sh文件执行方法
  15. 百度SEO小旋风百度ping推送工具V3
  16. 路径java起床战争_我的世界起床战争地图制作教程
  17. python爬虫实例网易云-Python3爬虫实例之网易云音乐爬虫
  18. Java商品价格竞猜活动
  19. 电子证据如何有效辨真伪?微版权“在线验证”电子数据的真实性
  20. 架构整洁之道-学习笔记

热门文章

  1. oracle 数据库日常巡检:数据库基本状况、oracle资源使用、数据备份结果、性能、cpu等、数据安全、归档日志、会话、SGA/PGA使用情况
  2. rancher k8s docker 关系_通过rancher部署k8s过程实战分享
  3. socket接收的消息怎么更新到页面_spring boot 集成 websocket 实现消息主动
  4. Linux系统下SSH服务启动失败故障处理
  5. Java高并发编程:活跃性危险
  6. Java基础:成员变量的继承与覆盖
  7. Web安全学习笔记之HTTP协议
  8. 11组软件工程组队项目计划安排及项目介绍——失误招领系统
  9. 浅谈Hive和HBase区别
  10. 开发错误记录9:Application无法跳转到Activity