您的位置:首页 > Web前端 > JavaScript

response响应给客户端(json、xml格式)

2016-07-26 12:42 716 查看
<?php

class Response {

  const JSON = "json";

  /**

  * 按综合方式输出通信数据

  * @param integer $code 状态码

  * @param string $message 提示信息

  * @param array $data 数据

  * @param string $type 数据类型

  * return string

  */

  public static function show($code, $message = '', $data = array(), $type = self::JSON) {

    if(!is_numeric($code)) {

      return '';

    }

    $type = isset($_GET['format']) ? $_GET['format'] : self::JSON;

    $result = array(

      'code' => $code,

      'message' => $message,

      'data' => $data,

    );

    if($type == 'json') {

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

      exit;

    } elseif($type == 'array') { //适合调试代码

      var_dump($result);

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

      self::xmlEncode($code, $message, $data);

      exit;

    } else {

      // TODO

    }

  }

  /**

  * 按json方式输出通信数据

  * @param integer $code 状态码

  * @param string $message 提示信息

  * @param array $data 数据

  * return string

  */

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

    

    if(!is_numeric($code)) {

      return '';

    }

    $result = array(

      'code' => $code,

      'message' => $message,

      'data' => $data

    );

    echo json_encode($result);

    exit;

  }

  /**

  * 按xml方式输出通信数据

  * @param integer $code 状态码

  * @param string $message 提示信息

  * @param array $data 数据

  * return string

  */

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

    if(!is_numeric($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::xmlToEncode($result);

    $xml .= "</root>";

    echo $xml;

  }

  public static function xmlToEncode($data) {

    $xml = $attr = "";

    foreach($data as $key => $value) {

      if(is_numeric($key)) {

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

        $key = "item";

      }

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

      $xml .= is_array($value) ? self::xmlToEncode($value) : $value;

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

    }

    return $xml;

  }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: