数组转XML
public function Xml($data){
if(!is_array($data) || count($data) <= 0){
return false;
}
$xml = "<xml version="1.0" encoding='UTF-8'>";
foreach ($data as $key=>$val){
if (is_numeric($val)){
$xml.="<".$key.">".$val."</".$key.">";
}else{
$xml.="<".$key."><![CDATA[".$val."]]></".$key.">";
}
}
$xml.="</xml>";
return $xml;
}
XML转数组
public function Array($xml,$isfile=false)
{
//$isfile:是否是文件
libxml_disable_entity_loader(true);//libxml_disable_entity_loader:是否禁止从外部加载XML实体,设为true就是禁止,目的是防止XML注入攻击
if ($isfile) {
if (!file_exists($xml)) return false;//file_exists:检查文件或目录是否存在
$xmlstr = file_get_contents($xml);//file_get_contents:把整个文件读入一个字符串中
} else {
$xmlstr = $xml;
}
//simplexml_load_string:转换形式良好的 XML 字符串为 SimpleXMLElement 对象
$result = json_decode(json_encode(simplexml_load_string($xmlstr, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
return $result;
}