Bacysoft.cn

标题: Discuz!X 中处理 PHP 数组与 XML 互转的类库 [打印本页]

作者: bacy001    时间: 2013-9-10 16:30
标题: Discuz!X 中处理 PHP 数组与 XML 互转的类库
本帖最后由 bacy001 于 2013-9-12 23:55 编辑

本类库的使用非法方便,直接 include 或者 require 到你的源码中就可以直接使用了!

类库结构简单,只有两个函数和一个类定义,两个函数分别是:数组转XML 和 XML转数组,类则封装了 PHP 对 XML 相关处理。

本类库来源与 Discuz!X 的源码,也就是说 Discuz!X 中对于 XML 的处理都是使用的本类库,具体的源码分析就不做了,有兴趣的读者可以自行阅读,并欢迎与我交流。

源码文件(需要登录才能下载,或者您可以直接去 Discuz!X 的源文件中搜索名为“class_xml.php”的文件):[attach]1[/attach]

下面简单介绍下如何使用本源码进行PHP数组与XML的互相转换。

先看看类库中的两个函数定义:
  1. function xml2array(&$xml, $isnormal = FALSE)

  2. function array2xml($arr, $htmlon = TRUE, $isnormal = FALSE, $level = 1)
复制代码
显然,xml2array 是将 xml 转成 array 的;而 array2xml 是将 array 转成 xml 的!

一、读取XML文件并转化为数组:
  1. $xml = implode('',file("test.xml"));
  2. $arr = xml2array($xml);
复制代码
二、读取数组并转化成XML文件保存:
  1. $xml = array2xml($arr);
  2. file_put_contents("test.xml",$xml);
复制代码
读者可以自行定义一个数组比如:
  1. $arr = array('cn'=>chinese,'en'=>'english');
复制代码
然后使用上面代码转化成 xml 文件后,查看效果。

本类库稳定性相当好,且能支持多维数组,支持中文而不会产生乱码,绝对是您处理 xml 文档的好工具。




欢迎光临 Bacysoft.cn (http://bacysoft.cn/) Powered by Discuz! X3.3