PHP生成json和xml类型接口数据格式


Posted in PHP onMay 17, 2015

php生成接口通信数据

/**
 * 生成接口数据格式
 */
class Response{
  /**
   * [show 按综合方式输出数据]
   * @param [int] $code    [状态码]
   * @param [string] $message [提示信息]
   * @param array $data  [数据]
   * @param [string] $type [类型]
   * @return [string]    [返回值]
   */
  public static function show($code, $message, $data = array(),$type = ''){
    if(!is_numeric($code)){
      return '';
    }
    $result = array(
      'code' => $code,
      'message' => $message,
      'data' => $data
    );
    if($type == 'json'){
      return self::json($code, $message, $data);
    }elseif($type == 'xml'){
      return self::xml($code, $message, $data);
    }else{
      //TODO
    }
  }
  /**
   * [json 按json方式输出数据]
   * @param [int] $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
    );
    $result = json_encode($result);
    return $result;
  }
 
  /**
   * [xml 按xml格式生成数据]
   * @param [int] $code    [状态码]
   * @param [string] $message [提示信息]
   * @param array $data   [数据]
   * @return [string]     [返回值]
   */
  public static function xml($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'?>\n";
    $xml .= "<root>\n";
    $xml .= self::xmlToEncode($data);
    $xml .= "</root>";
    return $xml;
  }
 
  public static function xmlToEncode($data){
    $xml = '';
    foreach($data as $key => $value){
      if(is_numeric($key)){
        $attr = "id='{$key}'";
        $key = "item";
      }
      $xml .= "<{$key} {$attr}>\n";
      $xml .= is_array($value) ? self::xmlToEncode($value) : "{$value}\n";
      $xml .= "</{$key}>\n";
    }
    return $xml;
  }
}
 
//测试
$grade = array("score" => array(70, 95, 70.0, 60, "70"), "name" => array("Zhang San", "Li Si", "Wang Wu", "Zhao Liu", "TianQi"));
$response = new Response();
$result = $response :: show(200,'success',$grade,'json');
print_r($result);

以上所述就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
PHP设计聊天室步步通
Oct 09 PHP
用PHP的ob_start();控制您的浏览器cache!
Feb 14 PHP
关于PHP堆栈与列队的学习
Jun 21 PHP
一个简洁实用的PHP缓存类完整实例
Jul 26 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
Sep 06 PHP
windows7下php开发环境搭建图文教程
Jan 06 PHP
php清除和销毁session的方法分析
Mar 19 PHP
PHP使用socket发送HTTP请求的方法
Feb 14 PHP
详解PHP的Yii框架中自带的前端资源包的使用
Mar 31 PHP
php实现压缩合并js的方法【附demo源码下载】
Sep 22 PHP
Laravel的throttle中间件失效问题解决方法
Oct 09 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
Jan 15 PHP
php实现文本数据导入SQL SERVER
May 17 #PHP
php中PDO方式实现数据库的增删改查
May 17 #PHP
PHP图像处理类库及演示分享
May 17 #PHP
递归实现php数组转xml的代码分享
May 14 #PHP
php编写批量生成不重复的卡号密码代码
May 14 #PHP
php编写的抽奖程序中奖概率算法
May 14 #PHP
深入浅出php socket编程
May 13 #PHP
You might like
PHP 危险函数解释 分析
2009/04/22 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
PHP实现补齐关闭的HTML标签
2016/03/22 PHP
PHP利用递归函数实现无限级分类的方法
2019/03/22 PHP
Array.prototype 的泛型应用分析
2010/04/30 Javascript
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
JavaScript中的类与实例实现方法
2015/01/23 Javascript
JavaScript常用脚本汇总(一)
2015/03/04 Javascript
jQuery实现简单的日期输入格式化控件
2015/03/12 Javascript
跨域请求的完美解决方法(JSONP, CORS)
2016/06/12 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
2016/06/14 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
详解vue项目中使用token的身份验证的简单实践
2019/03/08 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
关于Python的一些学习总结
2018/05/25 Python
使用EduBlock轻松学习Python编程
2018/10/08 Python
python之pyqt5通过按钮改变Label的背景颜色方法
2019/06/13 Python
Python正则表达式匹配日期与时间的方法
2019/07/07 Python
flask应用部署到服务器的方法
2019/07/12 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
Python使用Turtle模块绘制国旗的方法示例
2021/02/28 Python
数据库专业英语
2012/11/30 面试题
文案策划专业自荐信
2014/07/07 职场文书
工商局副局长个人对照检查材料
2014/09/25 职场文书
离婚协议书范文2014
2014/10/16 职场文书
工作年限证明模板
2014/11/01 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
工资证明范本
2015/06/12 职场文书
10大幻兽系恶魔果实 蝙蝠果实上榜,第一自愈能力强
2022/03/18 日漫