文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php数组怎么转换为xml的形式

2023-06-14 16:19

关注

这篇文章将为大家详细讲解有关php数组怎么转换为xml的形式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

PHP开发环境搭建工具有哪些

一、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、转换实例

<?phpnamespace Library;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);    }         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);        }    }         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);            }        }    }         private function end(\XMLWriter $xml)    {        if (self::$outer) {            $xml->endElement();        }         $xml->endDocument();         header("Content-type: text/xml");        //取得缓冲区里的xml字符串        return $xml->outputMemory(true);    }         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);        }    }         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的形式”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯