PHP实现的数组和XML文件相互转换功能示例


Posted in PHP onMarch 15, 2018

本文实例讲述了PHP实现的数组和XML文件相互转换功能。分享给大家供大家参考,具体如下:

最近搞微信支付,微信服务器返回的都是XML文件,所以需要转换成数组,才会便于操作,好了话不多说,直接上代码:

1. XML转数组

/**
 * 将xml转为array
 * @param string  $xml xml字符串或者xml文件名
 * @param bool   $isfile 传入的是否是xml文件名
 * @return array  转换得到的数组
 */
function xmlToArray($xml,$isfile=false){
  //禁止引用外部xml实体
  libxml_disable_entity_loader(true);
  if($isfile){
    if(!file_exists($xml)) return false;
    $xmlstr = file_get_contents($xml);
  }else{
    $xmlstr = $xml;
  }
  $result= json_decode(json_encode(simplexml_load_string($xmlstr, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
  return $result;
}

用法示例:

$xmlDoc=<<<ETO
<books>
 <book>
 <author>Jack Herrington</author>
 <title>PHP Hacks</title>
 <publisher>O'Reilly</publisher>
 </book>
 <book>
 <author>Jack Herrington</author>
 <title>Podcasting Hacks</title>
 <publisher>O'Reilly</publisher>
 </book>
 <book>
 <author>XML格式化</author>
 <title>三水点靠木在线工具</title>
 <publisher>tools.3water.com</publisher>
 </book>
</books>
ETO;
$relarr=xmlToArray($xmlDoc);
print_r($relarr);

运行结果:

Array
(
  [book] => Array
    (
      [0] => Array
        (
          [author] => Jack Herrington
          [title] => PHP Hacks
          [publisher] => O'Reilly
        )
      [1] => Array
        (
          [author] => Jack Herrington
          [title] => Podcasting Hacks
          [publisher] => O'Reilly
        )
      [2] => Array
        (
          [author] => XML格式化
          [title] => 三水点靠木在线工具
          [publisher] => tools.3water.com
        )
    )
)

2. 数组转XML

/**
 * 数组转xml字符
 * @param string  $xml xml字符串
**/
function arrayToXml($data){
  if(!is_array($data) || count($data) <= 0){
    return false;
  }
  $xml = "<xml>";
  foreach ($data as $key=>$val){
    if (is_numeric($val)){
      $xml.="<".$key.">".$val."</".$key.">";
    }else{
      $xml.="<".$key."><![CDATA[".$val."]]></".$key.">";
    }
  }
  $xml.="</xml>";
  return $xml;
}

用法示例:

$arrDoc= array("author"=>"XML格式化","title"=>"三水点靠木在线工具","publisher"=>"tools.3water.com");
$xmlrel=arrayToXml($arrDoc);
//运行结果:<xml><author><![CDATA[XML格式化]]></author><title><![CDATA[三水点靠木在线工具]]></title><publisher><![CDATA[tools.3water.com]]></publisher></xml>
PHP 相关文章推荐
jq的get传参数在utf-8中乱码问题的解决php版
Jul 23 PHP
PHP用GD库生成高质量的缩略图片
Mar 09 PHP
php class中public,private,protected的区别以及实例分析
Jun 18 PHP
基于simple_html_dom的使用小结
Jul 01 PHP
PHP查询网站的PR值
Oct 30 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
Jul 02 PHP
phpExcel中文帮助手册之常用功能指南
Aug 18 PHP
smarty中改进truncate使其支持中文的方法
May 30 PHP
PHP Header用于页面跳转时的几个注意事项
Oct 21 PHP
PHP请求远程地址设置超时时间的解决方法
Oct 29 PHP
PHP实现的简单在线计算器功能示例
Aug 02 PHP
php中的buffer缓冲区用法分析
May 31 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
Mar 15 #PHP
laravel框架关于搜索功能的实现
Mar 15 #PHP
PHP实现浏览器中直接输出图片的方法示例
Mar 14 #PHP
PHP实现生成推广海报的方法详解
Mar 14 #PHP
PHP基于phpqrcode类生成二维码的方法详解
Mar 14 #PHP
PHP判断是否是微信打开,浏览器打开的方法
Mar 14 #PHP
Laravel模型事件的实现原理详解
Mar 14 #PHP
You might like
通过ICQ网关发送手机短信的PHP源程序
2006/10/09 PHP
超级实用的7个PHP代码片段分享
2012/01/05 PHP
PHP使用静态方法的几个注意事项
2014/09/16 PHP
PHP面向对象之后期静态绑定功能介绍
2015/05/18 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
javascript iframe内的函数调用实现方法
2009/07/19 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
推荐9款炫酷的基于jquery的页面特效
2014/12/07 Javascript
JavaScript中使用Callback控制流程介绍
2015/03/16 Javascript
Jquery解析json字符串及json数组的方法
2015/05/29 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
2015/08/14 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
2015/12/02 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
ionic3 懒加载
2017/08/16 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
复制粘贴功能的Python程序
2008/04/04 Python
Python3读取zip文件信息的方法
2015/05/22 Python
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
python文件的md5加密方法
2016/04/06 Python
Python注释详解
2016/06/01 Python
python+opencv实现车牌定位功能(实例代码)
2019/12/24 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
Python通过kerberos安全认证操作kafka方式
2020/06/06 Python
美国电视购物HSN官网:HSN
2016/09/07 全球购物
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
历史学专业大学生找工作的自我评价
2013/10/16 职场文书
会计电算化个人自我评价
2013/11/17 职场文书
数学教育专业求职信
2014/07/22 职场文书
违反工作规定检讨书范文
2014/12/14 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书
PHP RabbitMQ消息列队
2022/05/11 PHP