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).')';
    } } //json接口
    public static function jsonEncode($code,$message='',$data='')
    {
    if(!is_numeric($code))
    {
    return '';
    } $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 '';
    } $result = array(
    'code' => $code,
    'message' => $message,
    'data' => $data,
    ); 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"; return $xml; } //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";
    } return $xml;
    }
    } //二维数据
    $type = isset($_GET['type'])? $_GET['type'] : 'json'; $callback = isset($_GET['callback'])? $_GET['callback'] : ''; $arr = array(
    'id'=>1,
    'name'=>'jia',
    'type'=>array(1,2,3)
    ); 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. Spark on Yarn | Spark,从入门到精通

    ?/ 为什么需要 Yarn? /? Yarn?的全称是?Yet Anther Resource Negotiator(另一种资源协商者).它作为 Hadoop?的一个组件,官方对它的定义是一个工作调度 ...

  2. maven集成SSM项目,Tomcat部署运行——SSM整合框架搭建(二)之问题

    问题一.当放开controller中的方法,出现如下问题 ### Error querying database. Cause: org.springframework.jdbc.CannotGetJ ...

  3. Spring Boot2(003):简要回顾“HelloWorld” web 工程

    1.注解: @RestController 和 @RequestMapping HelloWorldExample 中的第1个注解 @RestController 是一个被熟知的原型注解(stereo ...

  4. [转载]Jquery Chosen 插件动态生成option或重新绑定

    $(".chosen—select").find("option[value='1']").attr("selected", "s ...

  5. 057-while循环

    <?php $x=1; //初始化变量 while($x<=5){ //执行while循环 echo "$x<br />"; $x++; } ?>

  6. Essay引用如何最大限度的降低抄袭率

    今天要说到让无数人恨得要死.为了降重改的哭天喊地的“Paraphrase”.毕竟引用不是打两个引号复制粘贴就能凑字数完事的,无论国内外,都有查重率这个大敌在等着你.想要引用别人的论点论据,就少不了需要 ...

  7. jsp页面使用<% 语句%> SQL Server数据库报空指针异常(在控制台可以正常执行)

    一直反感用SQL Server数据库,很影响电脑性能!!数据库作业不得不用 前几天作业一直报空指针异常: 自己检查了所传参数,和数组不为空 数据库查询语句不为空 然后查看SQL服务是否启动  主要是S ...

  8. sublime text 常用插件安装

    一.安装方法 ctrl+ship+p —— 在弹出的地方输入 pci (package control: install pagckage)—— 再输入 要安装的包名 二.一步过慢或失败解决: 原因: ...

  9. 二、环境安装:yarn

    依赖管理工具安装yarn 可参考前几篇文章 1.必须安装nodejs 注意:安装nodejs稳定版本 2.安装cnpm用cnpm替代npm 地址:http://npm.taobao.org/安装cnp ...

  10. Codeforces Round #602 (Div. 2, based on Technocup 2020 Elimination Round 3) E. Arson In Berland Forest

    E. Arson In Berland Forest The Berland Forest can be represented as an infinite cell plane. Every ce ...