zoukankan      html  css  js  c++  java
  • xml和json格式输出

    <?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);
            }elseif ($type == 'array') {
                //用于调试
                var_dump($result);
            }elseif ($type == 'xml') {
                self::xmlEncode($code,$message,$data);
            }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数据格式
            $xml .= self::xmlToEncode($result);
     
            $xml .= "</root>";
            echo $xml;
            exit;
        }
     
        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;
        }
    }
     
    ?>





  • 相关阅读:
    一道看似简单的sql需求却难倒各路高手
    MahApps.Metro怎么调用消息窗口
    CodeSmith Generator 7.0.2激活步骤
    8款图表插件推荐
    VS的代码分析工具
    RDLC系列之六 打印纸张的大小(未解决)
    初识python
    应用程序的更新
    Expression<Func<T,TResult>>和Func<T,TResult>
    HTML5 history新特性pushState、replaceState
  • 原文地址:https://www.cnblogs.com/phonecom/p/c59d114452709f11215c2525f81d6028.html
Copyright © 2011-2022 走看看