您好,登录后才能下订单哦!
这篇文章将为大家详细讲解有关php数组怎么转换为xml的形式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
一、phpStudy,是一个新手入门最常用的开发环境。二、WampServer,WampServer也同样的也是和phpStudy一样操作简单对小白比较友好。三、XAMPP,XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包;四、MAMP,MAMP分为两种MAMP和MAMP Pro for Mac。五、宝塔面板,宝塔面板是一款服务器管理软件,支持windows和linux系统。六、UPUPW,UPUPW是目前Windows平台下最具特色的Web服务器PHP套件。
说到XML很多人对这个语言还是不熟悉的,它表示一种标记语言。在XML语法上,它与HTML类似,但是HTML中的元素是固定的,并且用户可以定制XML标签。对于数组的学习也有一定的积累,那么我们可以把数组转换为XML的形式,在正式开始数组的转换前,可以先对XML进行一些了解。
1、说明
XML 是可扩展标记语言(EXtensible Markup Language)。
XML 是一种很像HTML的标记语言。
XML 的设计宗旨是传输数据,而不是显示数据。
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准。
2、转换实例
<?php namespace Library; /** * 最外层的当个元素可以自定义标签,内层单个元素统一标签为$defaultSingleOuter */ class XML { private static $version = "1.0"; private static $encoding = 'utf-8'; // 最外层 private static $outer = ''; // 最外层属性 private static $outerAttribut = []; // 单个元素的外层 private static $singleOuter = ''; // 单个元素外层的属性 private static $singleOuterAttribut = []; private static $defaultSingleOuter = 'item'; public function A2XML(array $data) { $xml = new \XMLWriter(); $this->begin($xml); // 写数据 if (is_numeric(current(array_keys($data)))) { foreach ($data as $key => $val) { $this->singleBegin($xml, true); $this->writeElement($xml, $val); $this->singleEnd($xml); } } else { $this->writeElement($xml, $data); } return $this->end($xml); } /** * 写数据 * * @param \XMLWriter $xml * @param $data */ private function writeElement(\XMLWriter &$xml, $data) { if (!is_array($data)) { $xml->writeElement(self::$defaultSingleOuter, $data); return; } foreach ($data as $key => $val) { if (is_numeric($key)) { is_array($val) && $this->singleBegin($xml); $this->writeElement($xml, $val); is_array($val) && $this->singleEnd($xml); continue; } if (is_array($val)) { $xml->startElement($key); $this->writeElement($xml, $val); $xml->endElement(); continue; } $xml->writeElement($key, $val); } } /** * 开始 * * @param \XMLWriter $xml */ private function begin(\XMLWriter &$xml) { $xml->openMemory(); $xml->startDocument(self::$version, self::$encoding); if (self::$outer) { $xml->startElement(self::$outer); } if (self::$outerAttribut) { foreach (self::$outerAttribut as $key => $val) { $xml->writeAttribute($key, $val); } } } /** * 结束 * * @param \XMLWriter $xml * @return string */ private function end(\XMLWriter $xml) { if (self::$outer) { $xml->endElement(); } $xml->endDocument(); header("Content-type: text/xml"); //取得缓冲区里的xml字符串 return $xml->outputMemory(true); } /** * 单个元素的开始 * * @param \XMLWriter $xml * @param bool $first */ private function singleBegin(\XMLWriter $xml, $first = false) { if ($first) { $xml->startElement(self::$singleOuter ?: self::$defaultSingleOuter); if (self::$singleOuterAttribut) { foreach (self::$singleOuterAttribut as $key => $val) { $xml->writeAttribute($key, $val); } } } else { $xml->startElement(self::$defaultSingleOuter); } } /** * 单个元素的结束 * * @param \XMLWriter $xml */ private function singleEnd(\XMLWriter $xml) { $xml->endElement(); } public function setVersion($version = 1.0) { self::$version = $version; return $this; } public function setEncoding($encoding = 'utf-8') { self::$version = $encoding; return $this; } public function setOuter($outer = '') { self::$outer = $outer; return $this; } public function setOuterAttribut(array $outerAttribut = []) { self::$outerAttribut = $outerAttribut; return $this; } public function setSingleOuter($singleOuter) { self::$singleOuter = $singleOuter; return $this; } public function setSingleOuterAttribut(array $singleOuterAttribut = []) { self::$singleOuterAttribut = $singleOuterAttribut; return $this; } public function setDefaultSingleOuter($defaultSingleOuter) { self::$defaultSingleOuter = $defaultSingleOuter; return $this; } }
关于“php数组怎么转换为xml的形式”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。