php数组转xml,xml转数组
调用接口的时候需要发送xml格式的数据,自己记录一下
<?php
/**
*数组转化成xml
*@param $arr array
*@return $xml
*
**/
public static function toXml($arr = array()){
if(!is_array($arr)){
return false;
}
$xml = "<?xml version='1.0' encoding='GBK'?>\n";
$xml.='<RooT>'."\n";
foreach($arr as $k=>$v){
$xml.='<'.$k.'>';
if(!is_array($v)){
$v = iconv('utf-8','GBK',$v);
$xml.=$v;
}else{
foreach ($v as $k1 => $v1) {
$xml .= "\n";
$xml.='<'.$k1.'>';
$v1 = iconv('utf-8','GBK',$v1);
$xml .= $v1;
$xml .= '</'.$k1.'>';
}
$xml .= "\n";
}
$xml .= '</'.$k.'>';
$xml .= "\n";
}
$xml.='</RooT>';
return $xml;
}
/**
* 将xml转为array
* @param string $xml
* @throws WxPayException
*/
public static function FromXml($xml)
{
libxml_disable_entity_loader(true);
$xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
$val = json_decode(json_encode($xmlstring),true);
return $val;
}
?>