您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。