91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php數組怎么轉換為xml的形式

發布時間:2021-04-28 11:28:13 來源:億速云 閱讀:125 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關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、轉換實例

<?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的形式”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尼勒克县| 靖西县| 成都市| 巴林左旗| 南通市| 丰台区| 拜城县| 许昌市| 安远县| 麦盖提县| 淮滨县| 肃宁县| 定陶县| 温宿县| 桦甸市| 甘肃省| 井冈山市| 亚东县| 连云港市| 色达县| 外汇| 西乌珠穆沁旗| 万全县| 彩票| 泽库县| 天水市| 江孜县| 金昌市| 曲松县| 罗山县| 鞍山市| 白沙| 虞城县| 潼南县| 西乌珠穆沁旗| 民乐县| 新晃| 油尖旺区| 瓦房店市| 治多县| 白城市|