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的header和asp中的redirect比较
Oct 09 PHP
基于asp+ajax和数据库驱动的二级联动菜单
May 06 PHP
过滤掉PHP数组中的重复值的实现代码
Jul 17 PHP
php继承的一个应用
Sep 06 PHP
PHP关联链接常用代码
Nov 05 PHP
php下拉选项的批量操作的实现代码
Oct 14 PHP
PHP-Java-Bridge使用笔记
Sep 22 PHP
php动态生成版权所有信息的方法
Mar 24 PHP
详解YII关联查询
Jan 10 PHP
PHP验证码生成原理和实现
Jan 24 PHP
php微信开发之关键词回复功能
Jun 13 PHP
PHP文件上传小程序 适合初学者学习!
May 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
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
PHP+MYSQL的文章管理系统(二)
2006/10/09 PHP
php 异常处理实现代码
2009/03/10 PHP
php实现分页显示
2015/11/03 PHP
php中array_slice和array_splice函数解析
2016/10/18 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
PHPTree――php快速生成无限级分类
2018/03/30 PHP
php 可变函数使用小结
2018/06/12 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
Prototype使用指南之enumerable.js
2007/01/10 Javascript
javascript 面向对象继承
2009/11/26 Javascript
jQuery消息提示框插件Tipso
2015/05/04 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
JS实现图片切换效果
2018/11/17 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
使用jQuery实现购物车
2020/10/29 jQuery
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
Python实现的端口扫描功能示例
2018/04/08 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
python中的逆序遍历实例
2019/12/25 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
如何基于Python实现word文档重新排版
2020/09/29 Python
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
银行会计业务的个人自我评价
2013/11/02 职场文书
工业自动化专业毕业生推荐信
2013/11/18 职场文书
普通院校学生的自荐信
2013/11/27 职场文书
金融行业务员的自我评价
2013/12/13 职场文书
物流仓管员工作职责
2014/01/06 职场文书
创业计划书的写作技巧及要点
2014/01/31 职场文书
光学与应用专业毕业生求职信
2014/09/01 职场文书
公司行政管理制度范本
2015/08/05 职场文书
Python实现Excel文件的合并(以新冠疫情数据为例)
2022/03/20 Python