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 相关文章推荐
Get或Post提交值的非法数据处理
Oct 09 PHP
浅析PHP水印技术
Feb 14 PHP
php 全文搜索和替换的实现代码
Jul 29 PHP
php自动跳转中英文页面
Jul 29 PHP
使用PHP实现二分查找算法代码分享
Jun 24 PHP
PHP跨时区(UTC时间)应用解决方案
Jan 11 PHP
如何判断php数组的维度
Jun 10 PHP
php利用反射实现插件机制的方法
Mar 14 PHP
php安装swoole扩展的方法
Mar 19 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 PHP
php实现JWT验证的实例教程
Nov 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
一篇有意思的技术文章php介绍篇
2010/10/26 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
Laravel中Trait的用法实例详解
2016/03/16 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
apache php mysql开发环境安装教程
2016/07/28 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
几款极品的javascript压缩混淆工具
2007/05/16 Javascript
Extjs中使用extend(js继承) 的代码
2012/03/15 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
2016/01/25 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
微信小程序-小说阅读小程序实例(demo)
2017/01/12 Javascript
Vuex入门到上手教程
2018/06/20 Javascript
angular 用Observable实现异步调用的方法
2018/12/27 Javascript
python 简单备份文件脚本v1.0的实例
2017/11/06 Python
Sanic框架蓝图用法实例分析
2018/07/17 Python
Python爬虫之pandas基本安装与使用方法示例
2018/08/08 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
Python实现 版本号对比功能的实例代码
2019/04/18 Python
Python打印不合法的文件名
2020/07/31 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
中软Java笔试题
2012/11/11 面试题
初中生自我评价
2014/02/01 职场文书
股东合作协议书
2014/04/14 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
乡镇群众路线专项整治方案
2014/11/03 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server
Python下opencv使用hough变换检测直线与圆
2021/06/18 Python
Nginx反向代理配置的全过程记录
2021/06/22 Servers
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫
Golang 1.18 多模块Multi-Module工作区模式的新特性
2022/04/11 Golang