PHP实现的数组和XML文件相互转换功能示例
发布:smiling 来源: PHP粉丝网 添加日期:2021-09-05 14:34:16 浏览: 评论:0
这篇文章主要介绍了PHP实现的数组和XML文件相互转换功能,结合实例形式分析了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=<<<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.jb51.net</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] => php粉丝网
- [publisher] => www.phpfensi.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"=>"php粉丝网","publisher"=>"www.phpfensi.com");
- $xmlrel=arrayToXml($arrDoc);
- //运行结果:<xml><author><![CDATA[XML格式化]]></author><title><![CDATA[脚本之家在线工具]]></title><publisher><![CDATA[tools.jb51.net]]></publisher></xml>
Tags: PHP数组XML
- 上一篇:PHP实现浏览器中直接输出图片的方法示例
- 下一篇:PHP生成器功能与用法实例分析
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)