if (!function_exists('array2xml')) {
/**
* 数组转XML
* @param array $arr 数据源
* @param bool $ignore XML解析器忽略
* @param int $level 层级
* @return string|string[]|null 返回结果
*/
function array2xml($arr, $ignore = true, $level = 1)
{
$s = $level == 1 ? "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\r\n<root>\r\n" : '';
$space = str_repeat("\t", $level);
foreach ($arr as $k => $v) {
if (!is_array($v)) {
$s .= $space . "<item id=\"$k\">" . ($ignore ? '<![CDATA[' : '') . $v . ($ignore ? ']]>' : '')
. "</item>\r\n";
} else {
$s .= $space . "<item id=\"$k\">\r\n" . array2xml($v, $ignore, $level + 1) . $space . "</item>\r\n";
}
}
$s = preg_replace("/([\x01-\x08\x0b-\x0c\x0e-\x1f])+/", ' ', $s);
return $level == 1 ? $s . "</root>" : $s;
}
}
if (!function_exists('xml2array')) {
/**
* XML转数组
* @param string $xml xml格式内容
* @param bool $isnormal
* @return array
*/
/**
* xml转数组
* @param $xml xml文本内容
* @return string 返回结果
*/
function xml2array(&$xml)
{
$xml = "<xml>";
foreach ($xml as $key => $val) {
if (is_numeric($val)) {
$xml .= "<" . $key . ">" . $val . "</" . $key . ">";
} else {
$xml .= "<" . $key . "><![CDATA[" . $val . "]]></" . $key . ">";
}
}
$xml .= "</xml>";
return $xml;
}
}