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 !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
Jan 07 PHP
php 截取字符串并以零补齐str_pad() 函数
May 07 PHP
解析PHP中$_FILES的使用以及注意事项
Jul 05 PHP
php中实现获取随机数组列表的自定义函数
Apr 02 PHP
PHP使用逆波兰式计算工资的方法
Jul 29 PHP
PHP执行SQL文件并将SQL文件导入到数据库
Sep 17 PHP
如何使用GDB调试PHP程序
Dec 08 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
May 22 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
Jul 25 PHP
php array_multisort 对数组进行排序详解及实例代码
Oct 27 PHP
PHP实现的堆排序算法详解
Aug 17 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
Apr 23 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
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
探讨PHP中this,self,parent的区别详解
2013/06/08 PHP
php过滤XSS攻击的函数
2013/11/12 PHP
2017年最新PHP经典面试题目汇总(上篇)
2017/03/17 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
基于jQuery实现拖拽图标到回收站并删除功能
2015/11/25 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
前端自动化开发之Node.js的环境搭建教程
2017/04/01 Javascript
vue-cli中的webpack配置详解
2017/09/25 Javascript
angularjs结合html5实现拖拽功能
2018/06/25 Javascript
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
Vue匿名插槽与作用域插槽的合并和覆盖行为
2019/04/22 Javascript
Node.js文本文件BOM头的去除方法
2020/11/22 Javascript
Python中变量交换的例子
2014/08/25 Python
Python异常学习笔记
2015/02/03 Python
Python代码解决RenderView窗口not found问题
2016/08/28 Python
你应该知道的python列表去重方法
2017/01/17 Python
python实现扫描日志关键字的示例
2018/04/28 Python
Pycharm无法显示动态图片的解决方法
2018/10/28 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
Python求正态分布曲线下面积实例
2019/11/20 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
有原因的手表:Flex Watches
2019/03/23 全球购物
美国第二大连锁药店:Rite Aid
2019/04/03 全球购物
优秀护士演讲稿
2014/04/30 职场文书
大学生支教感言
2015/08/01 职场文书
个人工作失误的保证书怎么写?
2019/06/21 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
spring cloud 配置中心native配置方式
2021/09/25 Java/Android
Python中的tkinter库简单案例详解
2022/01/22 Python
Python采集壁纸并实现炫轮播
2022/04/30 Python