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;
        }
    }
     
    ?>





  • 相关阅读:
    在Eclipse或者STS中使用SVN插件
    SVN的忽略、版本回退、版本冲突(window)
    SVN的图标集
    HTML5+NodeJs实现WebSocket即时通讯
    import和require的区别
    正则表达式 金额验证
    vue 弹窗弹窗禁止滑动的方法 看了网上很多方法 都是扯淡 直接贴上代码
    uni-app关于小程序及app端第三方微信登陆问题
    用 async/await 来处理异步
    微信小程序 子组件调用父组件方法
  • 原文地址:https://www.cnblogs.com/phonecom/p/c59d114452709f11215c2525f81d6028.html
Copyright © 2011-2022 走看看