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 相关文章推荐
wiki-shan写的php在线加密的解密程序
Sep 07 PHP
php mssql扩展SQL查询中文字段名解决方法
Oct 15 PHP
CodeIgniter中使用cookie的三种方式详解
Jul 18 PHP
php+mysqli事务控制实现银行转账实例
Jan 29 PHP
PHP代码优化技巧小结
Sep 29 PHP
PHP实现基于mysqli的Model基类完整实例
Apr 08 PHP
PHP Mysqli 常用代码集合
Nov 12 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
PHP创建XML接口示例
Jul 04 PHP
Smarty缓存机制实例详解【三种缓存方式】
Jul 20 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
Jul 26 PHP
Thinkphp5框架使用validate实现验证功能的方法
Aug 27 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
文件系统基本操作类
2006/11/23 PHP
PHP编码转换
2012/11/05 PHP
用php代码限制国内IP访问我们网站
2015/09/26 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
JavaScript 模拟用户单击事件
2009/12/31 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
Javascript将数字转化成为货币格式字符串
2016/06/22 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
2017/01/19 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
JS实现评价的星星功能
2017/08/20 Javascript
微信小程序修改swiper默认指示器样式的实例代码
2018/07/18 Javascript
vue表单自定义校验规则介绍
2018/08/28 Javascript
Puppet的一些技巧
2018/09/17 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
使用layer模态框给新页面传值的方法
2019/09/27 Javascript
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
2020/06/28 Javascript
python 获取文件列表(或是目录例表)
2009/03/25 Python
python中随机函数random用法实例
2015/04/30 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
python中的colorlog库使用详解
2019/07/05 Python
python获取栅格点和面值的实现
2020/03/10 Python
浅谈Keras中shuffle和validation_split的顺序
2020/06/19 Python
python爬虫中PhantomJS加载页面的实例方法
2020/11/12 Python
css3实现书本翻页效果的示例代码
2021/03/08 HTML / CSS
外贸销售员求职的自我评价
2013/11/23 职场文书
趣味游戏活动方案
2014/02/07 职场文书
写自荐信的注意事项
2014/03/09 职场文书
学习两会精神心得范文
2014/03/17 职场文书
环保倡议书100字
2014/05/15 职场文书
给领导的感谢信范文
2015/01/23 职场文书
清洁工工作总结
2015/08/11 职场文书