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文件
Jan 04 PHP
php XPath对XML文件查找及修改实现代码
Jul 27 PHP
php类常量的使用详解
Jun 08 PHP
php 生成短网址原理及代码
Jan 23 PHP
PHP中使用SimpleXML检查XML文件结构实例
Jan 07 PHP
php两种无限分类方法实例
Apr 21 PHP
PHP实现链式操作的核心思想
Jun 23 PHP
php获取指定数量随机字符串的方法
Feb 06 PHP
PHP函数rtrim()使用中的怪异现象分析
Feb 24 PHP
Windows 下安装 swoole 图文教程(php)
Jun 05 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
Aug 07 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
Apr 08 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 芝麻信用接入的注意事项
2016/12/01 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
编写Js代码要注意的几条规则
2010/09/10 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
jQuery Ajax调用WCF服务详细教程
2015/03/31 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
模拟javascript中的sort排序(简单实例)
2016/08/17 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
2018/11/26 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
js实现电灯开关效果
2021/01/19 Javascript
Python AES加密模块用法分析
2017/05/22 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
python实现大量图片重命名
2020/03/23 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
浅谈Python中的继承
2020/06/19 Python
python集合的新增元素方法整理
2020/12/07 Python
音乐学院硕士生的自我评价分享
2013/11/01 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
市场营销调查计划书
2014/05/02 职场文书
2014年最新党员对照检查材料汇总
2014/09/15 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
鸦片战争观后感
2015/06/09 职场文书
《7的乘法口诀》教学反思
2016/02/18 职场文书
java泛型通配符详解
2021/07/25 Java/Android