PHP实现返回JSON和XML的类分享

  代码很简洁,功能也很简单实用,这里就不多废话了,直接奉上代码:

  

复制代码 代码如下:

  <?php

  class Reponse{

  //private $result = array('code'=null,'message'=null,'data'=>null);

  /**

  * @desc 返回JSON格式

  * @param int $code

  * @param string $message

  * @param array  $data

  * return string

  */

  public static function json($code,$message = null,$data = array()){

  if(!is_numeric($code)){

  return false;

  }

  $result = array(

  'code'=>$code,

  'message'=>$message,

  'data'=>$data

  );

  return json_encode($result);

  exit;

  }

  /**

  * @desc 返回xml格式数据

  * @parma int $code 状态码

  * @param string $message 提示

  * @param array $data 数据

  * return string

  */

  public static function xml($code,$message = '',$data = array()){

  if(!is_numeric($code)){

  return false;

  }

  $result = array(

  'code'=>$code,

  'message'=>$message,

  'data'=>$data

  );

  $xml = '';

  $xml .= "<?xml version='1.0' encoding='UTF-8'?>\n";

  $xml .= "<root>\n";

  $xml .= self::xmlEncode($result);

  $xml .= "</root>";

  header("Content-Type:text/xml");

  echo $xml;

  }

  public static function xmlEncode($result){

  $xml = $attr ='';

  foreach($result as $key=>$val){

  if(is_numeric($key)){

  $attr = "id='{$key}'";

  $key = "item{$key}";

  }

  $xml .= "<{$key} {$attr}>";

  $xml .= is_array($val) ? self::xmlEncode($val) : $val;

  $xml .= "</{$key}>\n";

  }

  return $xml;

  }

  }

  $data = array(

  'id'=>1,

  'age'=>20,

  'username'=>'tim',

  'others'=>array(1,2,3),

  );

  Reponse::xml(200,'success',$data);

  Reponse::json(200,'success',$data);

  小伙伴们可以直接拿去使用,使用方法在代码的最下方:)