04 json,xml混合封装通信

<?php

class Response_json_xml{

   public static function show($code,$message="",$data=array(),$type){
       if(is_null($code)){
        return '';
       }
       $data=array(
        'code'=>$code,
        'message'=>$message,
        'data'=>$data
       );
        if($type=="json"){

          self::json($code,$message,$data);die;

        }else if($type=="array"){

          var_dump($data);die; 

        }elseif($type=="xml"){

          self::xml_encoding($code,$message,$data);die;
       
        }else{
       
            //coding....
        }

   }
  /**
  *按json方式输出通信
  *@param integet $code 状态码
  *@param string $message 提示信息
  *@param array $data 数据
  * return string
  */
  public static function json($code,$message,$data=array()){

       if(is_null($code)){
        return '';
       }
       $result=array(
        'code'=>$code,
        'message'=>$message,
        'data'=>$data
       );

       echo json_encode($result);
       die;

  }
  /**
  *按xml方式输出通信
  *@param integet $code 状态码
  *@param string $message 提示信息
  *@param array $data 数据
  * return string
  */
  public static function xml_encoding($code,$message,$data=array()){
        
           if(is_null($code)){
            return '';
           }
           $result=array(
            'code'=>$code,
            'message'=>$message,
            'data'=>$data
           );
          header("Content-Type:text/xml");
         $xml ="<?xml version='1.0' encoding='UTF-8'?>\n";
         $xml.="<root>\n";
         $xml.=self::xml_array($result);
         $xml.="</root>\n";
         echo $xml;

    }
    public static function xml_array($result){
        $xml=$attr="";
        foreach ($result as $key => $value) {
            if(is_numeric($key)){
               $attr=" id='{$key}'";
               $key="item";
            }
            $xml.="<{$key}{$attr}>\n";
            $xml.=is_array($value)?self::xml_array($value):$value;
            $xml.="</{$key}>\n";
        }
        return $xml;
    }

}
   $data=array(
    'id'=>1,
    'name'=>'hgj123',
   );
   $data1=array(1,2,3,11,122);
   $type=isset($_GET['type'])?$_GET['type']:'json';
   Response_json_xml::show(200,'成功',$data,$type);

 

posted @ 2015-03-20 16:17  麦田守望者~  阅读(311)  评论(0编辑  收藏  举报