登录  /  注册

PHP实现的数组和XML文件相互转化步骤详解

php中世界最好的语言
发布: 2018-05-18 10:58:50
原创
912人浏览过

这次给大家带来PHP实现的数组和XML文件相互转化步骤详解,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=
 <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.jb51.net</publisher>
 </book>
ETO;
$relarr=xmlToArray($xmlDoc);
print_r($relarr);
登录后复制

运行结果:

Array
(
  [book] =&gt; Array
    (
      [0] =&gt; Array
        (
          [author] =&gt; Jack Herrington
          [title] =&gt; PHP Hacks
          [publisher] =&gt; O'Reilly
        )
      [1] =&gt; Array
        (
          [author] =&gt; Jack Herrington
          [title] =&gt; Podcasting Hacks
          [publisher] =&gt; O'Reilly
        )
      [2] =&gt; Array
        (
          [author] =&gt; XML格式化
          [title] =&gt; 脚本之家在线工具
          [publisher] =&gt; tools.jb51.net
        )
    )
)
登录后复制

2. 数组转XML

/**
 * 数组转xml字符
 * @param string  $xml xml字符串
**/
function arrayToXml($data){
  if(!is_array($data) || count($data) ";
  foreach ($data as $key=&gt;$val){
    if (is_numeric($val)){
      $xml.="".$val."".$key."&gt;";
    }else{
      $xml.="".$key."&gt;";
    }
  }
  $xml.="";
  return $xml;
}
登录后复制

用法示例:

$arrDoc= array("author"=&gt;"XML格式化","title"=&gt;"脚本之家在线工具","publisher"=&gt;"tools.jb51.net");
$xmlrel=arrayToXml($arrDoc);
//运行结果:<xml><author></author><title></title>
<publisher></publisher></xml>
登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

PHP实现微信支付实战案例详解

ThinkPHP实现微信支付(jsapi支付)步骤详解

以上就是PHP实现的数组和XML文件相互转化步骤详解的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号