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在字符串中查找另一个字符串
Nov 19 PHP
PHP 实用代码收集
Jan 22 PHP
php引用计数器进行垃圾收集机制介绍
Sep 19 PHP
php判断页面是否是微信打开的示例(微信打开网页)
Apr 25 PHP
PHP中单引号与双引号的区别分析
Aug 19 PHP
PHP代码实现表单数据验证类
Jul 28 PHP
深入讲解PHP的对象注入(Object Injection)
Mar 01 PHP
ThinkPHP实现简单登陆功能
Apr 28 PHP
php+redis实现商城秒杀功能
Nov 19 PHP
yii2中关于加密解密的那些事儿
Jun 12 PHP
详解PHP的抽象类和抽象方法以及接口总结
Mar 15 PHP
在Laravel中使用MongoDB的方法示例
Nov 11 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轻量级数据库操作类Medoo增加、删除、修改、查询例子
2014/07/04 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
php实现36进制与10进制转换功能示例
2017/01/10 PHP
PHP最常用的正则表达式
2017/02/13 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
用Javascript读取中文COOKIE的解决办法
2007/02/15 Javascript
JAVASCRIPT下判断IE与FF的比较简单的方式
2008/10/17 Javascript
Prototype Hash对象 学习
2009/07/19 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
javascript设计模式之解释器模式详解
2014/06/05 Javascript
什么是MEAN?JavaScript编程中的MEAN是什么意思?
2014/12/18 Javascript
jquery插件ajaxupload实现文件上传操作
2015/12/09 Javascript
AngularJS 中的指令实践开发指南(一)
2016/03/20 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
JavaScript的兼容性与调试技巧
2016/11/22 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
vue实现前进刷新后退不刷新效果
2018/01/26 Javascript
javascript实现考勤日历功能
2018/11/29 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
微信小程序实现搜索历史功能
2020/03/26 Javascript
json数据格式常见操作示例
2019/06/13 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
python如何在列表、字典中筛选数据
2018/03/19 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
解决Djang2.0.1中的reverse导入失败的问题
2019/08/16 Python
python里的单引号和双引号的有什么作用
2020/06/17 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
python/golang实现循环链表的示例代码
2020/09/14 Python
Python监听键盘和鼠标事件的示例代码
2020/11/18 Python
售后求职信范文
2014/03/15 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书