文档章节

PHP实现数组和XML文件转换

15834278076
 15834278076
发布于 2018/09/07 10:36
字数 265
阅读 14
收藏 2

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

1.XML转数组

/**
* 将xml转为array
* @param string $xml xml字符串或者xml文件名
* @param bool $isfile 传入的是否是xml文件名
* @return array 转换得到的数组
*/
function xmlToArray($xml,$isfile=false){
//禁止引用外部xml实体
libxml_disable_entityloader(true); if($isfile){ if(!fileexists($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;
}

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; 
}
 

本文转载自:https://blog.csdn.net/sinat_35861727/article/details/72784032

15834278076
粉丝 0
博文 116
码字总数 26131
作品 0
太原
程序员
私信 提问
扩展 SugarCRM REST web 服务以使用 XML

文章来自 IBM developerWorks 随着 SugarCRM 5.5 的引入,整个 web 服务框架倍添活力,不仅添加了 REST 支持来补充现有 SOAP 支持,而且能够让开发人员以一种安全升级的方式定制 web 服务,以...

IBMdW
2011/06/08
662
1
PHP使用JSON

JSON 基础 简 单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程...

晨曦之光
2012/03/09
185
0
第五章、epub文件处理 -- 解压epub文件

第五章、epub文件处理 -- 解压epub文件 本章将介绍程序是如何将epub内部被压缩过的xml文件转化为一个可以正常解析的char数组。要想将文件转换成char数组,就需要一个字符流类。而专门针对epu...

charlessun
2014/10/21
3.1K
1
【Yii2-CookBook】JSON 和 XML 输出

使用不同的响应类型 Web 和移动应用程序现在不仅仅只是用来呈现 HTML。 现在开发一个移动客户端,利用服务器 api 驱动前端,所有的用户交互都在客户端哪里。JSON 和 XML 格式通常用于序列化和...

小田天
2016/11/19
23
0
Spyc PHP

Spyc PHP 是一个用来读取 YAML 格式文件的PHP库,YAML一般用于保存配置文件, 性能优于XML,也更直观 使用方法: include('spyc.php'); // 读取YAML文件,生成数组 $yaml = Spyc::YAMLLoad('sp...

匿名
2009/01/16
7K
0

没有更多内容

加载失败,请刷新页面

加载更多

高防CDN的出现是为了解决网站的哪些问题?

高防CDN是为了更好的服务网络而出现的,是通过高防DNS来实现的。高防CDN是通过智能化的系统判断来路,再反馈给用户,可以减轻用户使用过程的复杂程度。通过智能DNS解析,能让网站访问者连接到...

云漫网络Ruan
今天
12
0
聊聊Tomcat中的连接器(Connector)

上期回顾 上一篇文章《Tomcat在SpringBoot中是如何启动的》从main方法启动说起,窥探了SpringBoot是如何启动Tomcat的,在分析Tomcat中我们重点提到了,Tomcat主要包括2个组件,连接器(Conne...

木木匠
今天
9
0
OSChina 周一乱弹 —— 熟悉的味道,难道这就是恋爱的感觉

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :好久没分享歌了分享张碧晨的单曲《今后我与自己流浪》 《今后我与自己流浪》- 张碧晨 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
2.4K
22
SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二) List 类型的操作 1、 向列表左侧添加数据 Long leftPush = redisTemplate.opsForList().leftPush("name", name); 2、 向列表右......

TcWong
今天
42
0
排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部