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 相关文章推荐
通过html表格发电子邮件
Oct 09 PHP
用PHP实现Ftp用户的在线管理的代码
Mar 06 PHP
自动生成文章摘要的代码[PHP 版本]
Mar 20 PHP
PHP教程 预定义变量
Oct 23 PHP
关于file_get_contents返回为空或函数不可用的解决方案
Jun 24 PHP
PHP变量内存分配问题记录整理
Nov 27 PHP
PHP 导出Excel示例分享
Aug 18 PHP
推荐5款跨平台的PHP编辑器
Dec 25 PHP
php判断用户是否手机访问代码
Jun 08 PHP
PHP实现动态web服务器方法
Jul 29 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
Apr 18 PHP
有关PHP 中 config.m4 的探索
Aug 26 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电台频率大全 - 26 西藏自治区
2020/03/11 无线电
自制汽车收音机天线:收听广播的技巧和方法
2021/03/02 无线电
PHP函数utf8转gb2312编码
2006/12/21 PHP
php date()日期时间函数详解
2010/05/16 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
JavaScript新窗口与子窗口传值详解
2014/02/11 Javascript
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
2015/07/27 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
相册展示PhotoSwipe.js插件实现
2016/08/25 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
使用vue.js实现联动效果的示例代码
2017/01/10 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
Node.js简单入门前传
2017/08/21 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
Promise.all中对于reject的处理方法
2018/08/01 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
微信小程序实现banner图轮播效果
2020/06/28 Javascript
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
Node.js学习之内置模块fs用法示例
2020/01/22 Javascript
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
Element Notification通知的实现示例
2020/07/27 Javascript
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
python创建进程fork用法
2015/06/04 Python
numpy.random.seed()的使用实例解析
2018/02/03 Python
python实现扫描局域网指定网段ip的方法
2019/04/16 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
python中的函数递归和迭代原理解析
2019/11/14 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
高中生家长寄语大全
2014/04/03 职场文书
高三毕业寄语
2014/04/10 职场文书
综治工作汇报材料
2014/10/27 职场文书
2015年中秋放假通知范文
2015/08/18 职场文书