PHP实现返回JSON和XML的类分享


Posted in PHP onJanuary 28, 2015

代码很简洁,功能也很简单实用,这里就不多废话了,直接奉上代码:

<?php

    class Reponse{

        //private $result = array('code'=null,'message'=null,'data'=>null);

        /**

         * @desc 返回JSON格式

         * @param int $code 

         * @param string $message 

         * @param array  $data

         * return string

         */

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

            if(!is_numeric($code)){

                return false;

            }

            $result = array(

                'code'=>$code,

                'message'=>$message,

                'data'=>$data

            );

            return json_encode($result);

            exit;

        }

        /**

         * @desc 返回xml格式数据

         * @parma int $code 状态码

         * @param string $message 提示

         * @param array $data 数据

         * return string 

         */

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

            if(!is_numeric($code)){

                return false;

            }

            $result = array(

                'code'=>$code,

                'message'=>$message,

                'data'=>$data

            );

            $xml = '';

            $xml .= "<?xml version='1.0' encoding='UTF-8'?>\n";

            $xml .= "<root>\n";

            $xml .= self::xmlEncode($result);

            $xml .= "</root>";

            header("Content-Type:text/xml");

            echo $xml;

         }

         public static function xmlEncode($result){

            $xml = $attr ='';

            foreach($result as $key=>$val){

                if(is_numeric($key)){

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

                    $key = "item{$key}";

                }

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

                $xml .= is_array($val) ? self::xmlEncode($val) : $val;

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

            }

            return $xml;

         }

    }

    $data = array(

        'id'=>1,

        'age'=>20,

        'username'=>'tim',

        'others'=>array(1,2,3),

    );

    Reponse::xml(200,'success',$data);

    Reponse::json(200,'success',$data);

小伙伴们可以直接拿去使用,使用方法在代码的最下方:)

PHP 相关文章推荐
PR值查询 | PageRank 查询
Dec 20 PHP
php实现的在线人员函数库
Apr 09 PHP
PHP编实现程动态图像的创建代码
Sep 28 PHP
Zend 输出产生XML解析错误
Mar 03 PHP
PHP中多维数组的foreach遍历示例
Jun 13 PHP
学习php设计模式 php实现工厂模式(factory)
Dec 07 PHP
Symfony2学习笔记之插件格式分析
Mar 17 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
May 06 PHP
PHP MySql增删改查的简单实例
Jun 21 PHP
php 解决substr()截取中文字符乱码问题
Jul 18 PHP
PHP实现的mongoDB数据库操作类完整实例
Apr 10 PHP
Yii redis集合的基本使用教程
Jun 14 PHP
PHP实现的下载远程图片自定义函数分享
Jan 28 #PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
Jan 28 #PHP
php+mysqli使用预处理技术进行数据库查询的方法
Jan 28 #PHP
php中使用session防止用户非法登录后台的方法
Jan 27 #PHP
php中session与cookie的比较
Jan 27 #PHP
php实现session自定义会话处理器的方法
Jan 27 #PHP
php实现检查文章是否被百度收录
Jan 27 #PHP
You might like
PHP连接Nginx服务器并解析Nginx日志的方法
2015/08/16 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
2019/05/14 PHP
Fixie.js 自动填充内容的插件
2012/06/28 Javascript
js获得鼠标的坐标值的方法
2013/03/13 Javascript
JSON辅助格式化处理方法
2013/03/26 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
jquery实现对联广告的方法
2015/02/05 Javascript
nodejs调用cmd命令实现复制目录
2015/05/04 NodeJs
javascript实现图片跟随鼠标移动效果的方法
2015/05/13 Javascript
JS模式之简单的订阅者和发布者模式完整实例
2015/06/30 Javascript
JS 面向对象之继承---多种组合继承详解
2016/07/10 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
2016/11/05 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
2017/02/08 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
vue项目打包后打开页面空白解决办法
2018/06/29 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
微信小程序如何使用globalData的方法
2019/06/06 Javascript
浅析Vue中拆分视图层代码的5点建议
2019/08/15 Javascript
JavaScript实现抖音罗盘时钟
2019/10/11 Javascript
小程序外卖订单界面的示例代码
2019/12/30 Javascript
详细分析Node.js 多进程
2020/06/22 Javascript
node.js基础知识汇总
2020/08/25 Javascript
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python多线程扫描端口示例
2014/01/16 Python
python基础教程之Hello World!
2014/08/29 Python
浅谈pyhton学习中出现的各种问题(新手必看)
2017/05/17 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
python eventlet绿化和patch原理
2020/11/21 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
Hunkemöller西班牙:欧洲最大的内衣连锁店
2018/08/15 全球购物
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
导游实习生自荐书
2014/01/28 职场文书
寻衅滋事罪辩护词
2015/05/21 职场文书
2015年物业管理员工工作总结
2015/10/15 职场文书