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





  • 相关阅读:
    补交20145226蓝墨云班课 -- 程序设计中临时变量的使用
    补交20145226蓝墨云班课 -- MyCP
    补交20145226蓝墨云班课 -- MyOD
    补交20145226蓝墨云班课 -- Arrays和String单元测试
    补交20145226蓝墨云班课 -- 后缀表达式
    20145226夏艺华 《Java程序设计》 课堂实践
    20145226夏艺华 网络对抗技术 EXP9 web安全基础实践
    (转载)充分理解QML的属性绑定
    (转载)UML类图中的六大关系:关联、聚合、组合、依赖、继承、实现
    (转载)链路层MTU的概念?为什么MTU值普遍都是1500?
  • 原文地址:https://www.cnblogs.com/phonecom/p/c59d114452709f11215c2525f81d6028.html
Copyright © 2020-2023  润新知