zoukankan      html  css  js  c++  java
  • 按综合方式输出通信数据

    <?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'?>
    ";
            $xml .= "<root>
    ";
    
            $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}>
    ";
            }
            return $xml;
        }
    
    }
  • 相关阅读:
    Spring使用@Value注解各种类型的值
    Jdom生成xml文件时的特殊字符问题
    将博客搬至CSDN
    ubuntu/mint添加字体
    linux保持ssh连接
    servlet 重定向与转发区别
    u盘写保护
    修改默认终端
    sudo apt-get update 无法获得锁
    logback多线程日志MDC
  • 原文地址:https://www.cnblogs.com/yangzailu/p/9195871.html
Copyright © 2011-2022 走看看