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 购物车实例(申精)
May 11 PHP
php 无限级 SelectTree 类
May 19 PHP
php面向对象全攻略 (十六) 对象的串行化
Sep 30 PHP
php实现jQuery扩展函数
Oct 30 PHP
php绘制圆形的方法
Jan 24 PHP
php生成RSS订阅的方法
Feb 13 PHP
php+mysql+jquery实现日历签到功能
Feb 27 PHP
PHP xpath()函数讲解
Feb 11 PHP
PHP whois查询类定义与用法示例
Apr 03 PHP
PHP上传图片到数据库并显示的实例代码
Dec 20 PHP
php计数排序算法的实现代码(附四个实例代码)
Mar 31 PHP
Yii框架应用组件用法实例分析
May 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
我的论坛源代码(二)
2006/10/09 PHP
PHP脚本中include文件出错解决方法
2008/11/20 PHP
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
2015/04/20 PHP
PHP实现根据银行卡号判断银行
2015/04/29 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
2020/08/17 PHP
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
2006/12/23 Javascript
IE的fireEvent方法概述及应用
2013/02/22 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
2016/08/11 Javascript
windows下vue.js开发环境搭建教程
2017/03/20 Javascript
详解VueJs前后端分离跨域问题
2017/05/24 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
浅谈鸿蒙 JavaScript GUI 技术栈
2020/09/17 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
python采集博客中上传的QQ截图文件
2014/07/18 Python
python继承和抽象类的实现方法
2015/01/14 Python
python的unittest测试类代码实例
2017/12/07 Python
Python将二维列表list的数据输出(TXT,Excel)
2020/04/23 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
2020/10/10 Python
css3翻牌翻数字的示例代码
2020/02/07 HTML / CSS
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
全球最大的在线橄榄球商店:Lovell Rugby
2018/05/20 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
工程专业求职自荐书范文
2014/02/18 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书