<?PHP classResponse{ /*********************************** *返回json格式数据 *$paraminteger$code *$paramstring$message *$paramarray$data *returnjson * ******************************/ publicstaticfunctionjson($code,$message='',$data=array()){ //做出一个验证,如果不是数字,就返回空 if(!is_numeric($code)){ return''; } //把穿进来的三个值,组装成一个数组 $result=array( 'code'=>$code,'message'=>$message,'data'=>$data ); //json_encode()把数组转化成json格式输出 echojson_encode($result); exit; } /*********************************** *返回xml格式数据 *$paraminteger$code *$paramstring$message *$paramarray$data *returnxml * ******************************/ publicstaticfunctionxml($code,'data'=>$data ); //json_encode()把数组转化成json格式输出 //便于浏览器输出xml格式文件 header('content-type:text/xml'); //拼接xml $xml.="<?xmlversion='1.0'encoding='UTF-8'?>"; $xml.='<root>'; $xml.=self::xmlToEncode($result);//获取组装好的xml数据 $xml.='</root>'; echo$xml; exit; } publicstaticfunctionxmlToEncode($arr){ //准备一个接收的空数组 $xml=''; //将这个数组的键,作为节点名称,值作为内容 foreach($arras$key=>$value){ /*约定一个规则,如果键是数字的话,格式为<itemid='5'>aaa</item>*/ if(is_numeric($key)){ $attr="id='{$key}'";//属性的值需要带上引号,不然报错 $key='item'; } $xml.="<{$key}{$attr}>"; //如果$value的值是个多维数组的话,需要递归遍历 $xml.=is_array($value)?self::xmlToEncode($value):$value; $xml.="</{$key}>"; } ob_clean(); return$xml; } } $array=array( 'name'=>'学PHP的小蚂蚁','age'=>'27','sex'=>'male','url'=>'博客http://my.oschina.net/woshixiaomayi/blog','like'=>array( 'eat'=>'apple','drink'=>'milk','happy','lucky' ) ); Response::xml(200,'success',$array); ?>
其中有两点需要注意:
原文链接:/xml/295456.html