1. <?php
      Class Response
      {
      //返回数据
      public static function show($code,$message='',$data='',$type = 'json',$callback='')
      {
      if($type=='json')
      {
      echo self::jsonEncode($code,$message,$data);
      }elseif($type == 'xml')
      {
      echo self::xmlEncode($code,$message,$data);
      }elseif($type == 'jsonp')
      {
      echo $callback.'('.self::jsonEncode($code,$message,$data).')';
      }
    2.  
    3. }
    4.  
    5. //json接口
      public static function jsonEncode($code,$message='',$data='')
      {
      if(!is_numeric($code))
      {
      return '';
      }
    6.  
    7. $result = array(
      'code' => $code,
      'message' => $message,
      'data' => $data,
      );
      header("Content-type:text/json;chaset=utf-8");
      return json_encode($result);
      }
      //xml接口
      public static function xmlEncode($code,$message,$data=array())
      {
      if(!is_numeric($code))
      {
      return '';
      }
    8.  
    9. $result = array(
      'code' => $code,
      'message' => $message,
      'data' => $data,
      );
    10.  
    11. header("Content-type:text/xml;chaset=utf-8");
      $xml = "<?xml version='1.0' encoding='utf-8' ?>\n";
      $xml .= "<root>\n";
      $xml .= self::xmlToEncode($result);
      $xml .= "</root>\n";
    12.  
    13. return $xml;
    14.  
    15. }
    16.  
    17. //xml内容循环
      public static function xmlToEncode($data)
      {
      if(empty($data))
      {
      return '';
      }
      $xml = $attr = '';
      foreach ($data as $key => $value)
      {
      if(is_numeric($key))
      {
      $attr = "id='{$key}'";
      $key = "item";
      }
      $xml .= "<{$key} {$attr}>";
      $xml .= is_array($value) ? self::xmlToEncode($value) : $value ;
      $xml .= "</{$key}>\n";
      }
    18.  
    19. return $xml;
      }
      }
    20.  
    21. //二维数据
      $type = isset($_GET['type'])? $_GET['type'] : 'json';
    22.  
    23. $callback = isset($_GET['callback'])? $_GET['callback'] : '';
    24.  
    25. $arr = array(
      'id'=>1,
      'name'=>'jia',
      'type'=>array(1,2,3)
      );
    26.  
    27. Response::show(200,'数据返回成功',$arr,$type,$callback);

php封装一个接口类的更多相关文章

  1. 使用libzplay库封装一个音频类

    装载请说明原地址,谢谢~~      前两天我已经封装好一个duilib中使用的webkit内核的浏览器控件和一个基于vlc的用于播放视频的视频控件,这两个控件可以分别用在放酷狗播放器的乐库功能和MV ...

  2. 1.使用C++封装一个链表类LinkList

     使用C++封装一个链表类LinkList.写出相应一个测试用例 链表需要提供 添加 修改删除 除重 合并 排序创建 销毁等接口. 不能调用库函数或者使用STL等类库 题目延伸********** ...

  3. 使用Java封装一个DBUtils类(反射)

    刚开始学JavaWeb时,我是调用N个setter方法将从数据库中查询出的数据封装成JavaBean的,极其繁琐. 后来了解SpringJDBC后,发现它提供的接口非常简单,然后就想自己封装一个简单的 ...

  4. Swift - 简单封装一个工具类模板

    创建模板类(封装一个类) 例1:新建一个名字叫做 Product 的类 Product.swift File 的内容 class Product { var name: String var desc ...

  5. C++:如何正确的定义一个接口类

    C++中如何定义接口类?首先给接口类下了定义:接口类应该是只提供方法声明,而自身不提供方法定义的抽象类.接口类自身不能实例化,接口类的方法定义/实现只能由接口类的子类来完成. 而对于C++,其接口类一 ...

  6. 封装一个帮助类来写文件到android外置存储器上

    项目地址:点击打开 项目简介:写文件到android外置存储器的一个帮助类,和它的demo程序 它是如何工作的呢? 1.创建 AppExternalFileWriter 对象并传递context(上下 ...

  7. 使用AutoFac实现依赖注入(封装一个注册类)

    public class AutoFacBootStrapper { public static void CoreAutoFacInit() { var builder = new Containe ...

  8. 封装一个mysql类(ggshop)

    接口 abstract class db{ //连接服务器 public abstract function connect($n,$u,$p); //发送查询 protected abstract ...

  9. 封装一个 员工类 使用preparedStatement 查询数据 (2) 使用 arrayList 集合

    创建 员工=类生成 有参构造 get set 方法 toString 方法 package cn.hph; public class emp1 { //创建员工类的属性 private int id; ...

随机推荐

  1. SpringBoot-配置Java方式

    SpringBoot中使用Java方式配置步骤如下: 在类上加入@Configuration注解,代表作为配置类 在该类方法上加入@Bean注解,代表将方法返回的Bean加入Spring容器 在该类中 ...

  2. poj 2376 Cleaning Shifts 最小区间覆盖

    Cleaning Shifts Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 40751   Accepted: 9871 ...

  3. [BJDCTF2020]EasySearch

    0x00 知识点 Apache SSI 远程命令执行漏洞 链接: https://www.cnblogs.com/yuzly/p/11226439.html 当目标服务器开启了SSI与CGI支持,我们 ...

  4. Gym - 101190F Foreign Postcards (期望dp)

    题意:有n张标有“C”或“F”的卡片. 1.随机取前k张(1<=k<=n) 2.若这k张的第一张为“C”,则不翻转,否则,全部翻转这k张. 3.然后处理剩下的n-k张 4.重复步骤1~3直 ...

  5. Windows按键消息—虚拟键码(转)

    源地址:http://c.biancheng.net/cpp/html/1253.html 虚拟键码保存在WM_KEYDOWN.WM_KEYUP.WM_SYSKEYDOWN和WM_SYSKEYUP消息 ...

  6. 又一个无效的列类型错误Error setting null for parameter #7 with JdbcType NULL . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLExcept

    在更新数据时候出现的错误 更新代码如下: <update id="modify" parameterType="Standard"> update ...

  7. plsql调用执行存储过程

    参考 https://www.cnblogs.com/enjoyjava/p/9131169.html ------------------------------------------------ ...

  8. 八十三、SAP中的ALV创建之二,ALV相关的类型池定义

    一.与ALV相关的类型都是在TYPE-POOLS:SLIS中.我们来到SE11 二.常用的定义有fieldca和layout等,用于显示字段,和控制信息数据等. 三.我们以VBAK表为例,用ALV输出 ...

  9. sublime text快速运行浏览web/html页面

    安装View In Browser插件 快捷键 Ctrl+Shift+P(菜单栏Tools->Command Paletter),输入 pcip选中Install Package并回车,输入Vi ...

  10. CF1141D Colored Boots

    There are n left boots and n right boots. Each boot has a color which is denoted as a lowercase Lati ...