欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

php數(shù)組怎么轉(zhuǎn)換為xml的形式

這篇文章將為大家詳細(xì)講解有關(guān)php數(shù)組怎么轉(zhuǎn)換為xml的形式,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比通山網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式通山網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋通山地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴(lài)。

PHP開(kāi)發(fā)環(huán)境搭建工具有哪些

一、phpStudy,是一個(gè)新手入門(mén)最常用的開(kāi)發(fā)環(huán)境。二、WampServer,WampServer也同樣的也是和phpStudy一樣操作簡(jiǎn)單對(duì)小白比較友好。三、XAMPP,XAMPP(Apache+MySQL+PHP+PERL)是一個(gè)功能強(qiáng)大的建站集成軟件包;四、MAMP,MAMP分為兩種MAMP和MAMP Pro for Mac。五、寶塔面板,寶塔面板是一款服務(wù)器管理軟件,支持windows和linux系統(tǒng)。六、UPUPW,UPUPW是目前Windows平臺(tái)下最具特色的Web服務(wù)器PHP套件。

說(shuō)到XML很多人對(duì)這個(gè)語(yǔ)言還是不熟悉的,它表示一種標(biāo)記語(yǔ)言。在XML語(yǔ)法上,它與HTML類(lèi)似,但是HTML中的元素是固定的,并且用戶可以定制XML標(biāo)簽。對(duì)于數(shù)組的學(xué)習(xí)也有一定的積累,那么我們可以把數(shù)組轉(zhuǎn)換為XML的形式,在正式開(kāi)始數(shù)組的轉(zhuǎn)換前,可以先對(duì)XML進(jìn)行一些了解。

1、說(shuō)明

XML 是可擴(kuò)展標(biāo)記語(yǔ)言(EXtensible Markup Language)。

XML 是一種很像HTML的標(biāo)記語(yǔ)言。

XML 的設(shè)計(jì)宗旨是傳輸數(shù)據(jù),而不是顯示數(shù)據(jù)。

XML 標(biāo)簽沒(méi)有被預(yù)定義。您需要自行定義標(biāo)簽。

XML 被設(shè)計(jì)為具有自我描述性。

XML 是 W3C 的推薦標(biāo)準(zhǔn)。

2、轉(zhuǎn)換實(shí)例

<?php
namespace Library;
/**
 * 最外層的當(dāng)個(gè)元素可以自定義標(biāo)簽,內(nèi)層單個(gè)元素統(tǒng)一標(biāo)簽為$defaultSingleOuter
 */
class XML
{
    private static $version = "1.0";
    private static $encoding = 'utf-8';
    // 最外層
    private static $outer = '';
    // 最外層屬性
    private static $outerAttribut = [];
    // 單個(gè)元素的外層
    private static $singleOuter = '';
    // 單個(gè)元素外層的屬性
    private static $singleOuterAttribut = [];
 
    private static $defaultSingleOuter = 'item';
 
    public function A2XML(array $data)
    {
        $xml = new \XMLWriter();
        $this->begin($xml);
 
        // 寫(xiě)數(shù)據(jù)
        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);
    }
 
    /**
     * 寫(xiě)數(shù)據(jù)
     *
     * @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);
        }
    }
 
    /**
     * 開(kāi)始
     *
     * @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);
            }
        }
    }
 
    /**
     * 結(jié)束
     *
     * @param \XMLWriter $xml
     * @return string
     */
    private function end(\XMLWriter $xml)
    {
        if (self::$outer) {
            $xml->endElement();
        }
 
        $xml->endDocument();
 
        header("Content-type: text/xml");
        //取得緩沖區(qū)里的xml字符串
        return $xml->outputMemory(true);
    }
 
    /**
     * 單個(gè)元素的開(kāi)始
     *
     * @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);
        }
    }
 
    /**
     * 單個(gè)元素的結(jié)束
     *
     * @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;
    }
}

關(guān)于“php數(shù)組怎么轉(zhuǎn)換為xml的形式”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

網(wǎng)頁(yè)名稱(chēng):php數(shù)組怎么轉(zhuǎn)換為xml的形式
網(wǎng)頁(yè)路徑:http://chinadenli.net/article4/gehhoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、企業(yè)建站、網(wǎng)站制作、網(wǎng)站設(shè)計(jì)公司、全網(wǎng)營(yíng)銷(xiāo)推廣、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作