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 相关文章推荐
MySQL授权问题总结
May 06 PHP
php 处理上百万条的数据库如何提高处理查询速度
Feb 08 PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
May 04 PHP
php实现文件编码批量转换
Mar 10 PHP
纯PHP生成的一个树叶图片画图例子
Apr 16 PHP
PHP捕获Fatal error错误的方法
Jun 11 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
Dec 09 PHP
php带抄送和密件抄送的邮件发送方法
Mar 20 PHP
php隐藏实际地址的文件下载方法
Apr 18 PHP
PHP 7.1新特性的汇总介绍
Dec 16 PHP
详解laravel passport OAuth2.0的4种模式
Nov 04 PHP
php多进程中的阻塞与非阻塞操作实例分析
Mar 04 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 JSON中文乱码的解决方法详解
2013/06/06 PHP
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
PHP filesize函数用法浅析
2019/02/15 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
2019/02/20 PHP
Laravel事件监听器用法实例分析
2019/03/12 PHP
Convert Seconds To Hours
2007/06/16 Javascript
超实用的javascript时间处理总结
2016/08/16 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
微信小程序 实战实例开发流程详细介绍
2017/01/05 Javascript
Angular.JS中的指令引用template与指令当做属性详解
2017/03/30 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
VUE2实现事件驱动弹窗示例
2017/10/21 Javascript
详解微信小程序的 request 封装示例
2018/08/21 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
jquery实现两个div中的元素相互拖动的方法分析
2020/04/05 jQuery
angular *Ngif else用法详解
2020/12/15 Javascript
JavaScript的一些小技巧分享
2021/01/06 Javascript
Python isinstance判断对象类型
2008/09/06 Python
使用Python编写vim插件的简单示例
2015/04/17 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
2018/02/01 Python
python list是否包含另一个list所有元素的实例
2018/05/04 Python
Jupyter中直接显示Matplotlib的图形方法
2018/05/24 Python
Python骚操作之动态定义函数
2019/03/26 Python
金宝贝童装官网:Gymboree
2016/08/31 全球购物
宝拉珍选美国官网:Paula’s Choice美国
2018/01/07 全球购物
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
有针对性的求职自荐信
2013/11/14 职场文书
秋游活动策划方案
2014/02/16 职场文书
协议书与合同的区别
2014/04/18 职场文书
小学运动会演讲稿
2014/08/25 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
平安建设汇报材料
2014/12/29 职场文书
2015年学校总务处工作总结
2015/05/19 职场文书
2016公司年会主持词
2015/07/01 职场文书
中国梦党课学习心得体会
2016/01/05 职场文书