将数组转化为xml格式 将xml转成Json格式
/**
* 将数组转化为xml格式
*
* @param array $arr 数组
* @param bool $htmlon 是否开启html模式
* @param bool $isnormal 是否不全空格
* @param intval $level 当前级别
* @return string
*/
function dr_array2xml($arr, $htmlon = TRUE, $isnormal = FALSE, $level = 1) {
$space = str_repeat("\t", $level);
$string = $level == 1 ? "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<result>\r\n" : '';
foreach ($arr as $k => $v) {
if (!is_array($v)) {
$string.= $space . "<$k>" . ($htmlon ? '<![CDATA[' : '') . $v . ($htmlon ? ']]>' : '') . "</$k>\r\n";
} else {
$name = is_numeric($k) ? 'item' . $k : $k;
$string.= $space . "<$name>\r\n" . dr_array2xml($v, $htmlon, $isnormal, $level + 1) . $space . "</$name>\r\n";
}
}
$string = preg_replace("/([\x01-\x08\x0b-\x0c\x0e-\x1f])+/", ' ', $string);
return $level == 1 ? $string . '</result>' : $string;
}
//利用simplexml 将XML转成Json
public function xml_to_json($source) {
if(is_file($source)){ //传的是文件,还是xml的string的判断
$xml_array=simplexml_load_file($source);
}else{
$xml_array=simplexml_load_string($source);
}
$json = json_encode($xml_array); //php5,以及以上,如果是更早版本,请查看JSON.php
return $json;
}