最近公司要做一個API接口
<?php
/**
* 數組轉XML類庫
*
* @filesource ArrayToXML
* @author gentwolf
* @version
*
* 使用說明
* echo ArrayToXml::parse($array
*/
class ArrayToXML {
//文檔對象
private static $doc = NULL;
//版本號
private static $version =
/**
* 初始化文檔版本及編碼
*
* @param string $version 版本號
* @param string $encoding XML編碼
*/
public static function init($version
self::$doc = new DomDocument($version
self::$doc
}
/**
* 轉換數組到XML
*
* @param array $array 要轉換的數組
* @param string $rootName 要節點名稱
* @param string $version 版本號
* @param string $encoding XML編碼
*
* @return string
*/
public static function parse($array
self::init($version
//轉換
$node = self::convert($array
self::$doc
return self::$doc
}
/**
* 遞歸轉換
*
* @param array $array 數組
* @param string $nodeName 節點名稱
*
* @return object (DOMElement)
*/
private static function convert($array
if (!is_array($array)) return false;
//創建父節點
$node = self::createNode($nodeName);
//循環數組
foreach ($array as $key => $value) {
$element = self::createNode($key);
//如果不是數組
if (!is_array($value)) {
$element
$node
} else {
//如果是數組
$node
}
}
return $node;
}
private static function createNode($name) {
$node = NULL;
//如果是字符串
if (!is_numeric($name)) {
$node = self::$doc
} else {
//如果是數字
$node = self::$doc
}
return $node;
}
/**
* 創建文本節點
*
* @param string || bool || integer $value
*
* @return object (DOMText || DOMCDATASection );
*/
private static function createValue($value) {
$textNode = NULL;
//如果是bool型
if (true === $value || false === $value) {
$textNode = self::$doc
} else {
//如果含有HTML標簽
if (strpos($value
$textNode = self::$doc
} else {
$textNode = self::$doc
}
}
return $textNode;
}
}
From:http://tw.wingwit.com/Article/program/PHP/201311/20849.html