参考视频http://www.imooc.com/learn/163

<?php 

/**
* app返回数据类
* 1.接受多维,缺少键名的数组,
* 2.可由输入的format参数决定返回数据格式
* 例子:Response::show(200, 'success', $data);
*/
class Response
{
const JSON = 'json'; /**
* 按json格式输出通信数据
*/
public static function json($result)
{
echo json_encode($result);
} /**
* encode XML的数据部分
*/
private static function _xml_encode($data)
{
$xml = "";
foreach ($data as $key => $value) { //如果键名是数字,则改为<item id="0"></item>格式
$attr = '';
if (is_numeric($key)) {
$attr = " id='{$key}'";
$key = "item";
} //如果键值是数组,则递归调用自己
$xml .= "<{$key}{$attr}>";
$xml .= is_array($value) ? "\n" . self::_xml_encode($value) : $value;
$xml .= "</{$key}>\n";
} return $xml;
} /**
* 按xml格式输出通信数据
*/
public static function xml($result)
{
header("Content-Type:text/xml");
$xml = "<?xml version='1.0' encoding='UTF-8'?>\n";
$xml .= "<root>\n"; $xml .= self::_xml_encode($result); $xml .= "</root>\n"; echo $xml;
} /**
* 按输入的格式输出通信数据
*/
public static function show($code, $message = "", $data = array(), $type = self::JSON)
{
if ( ! is_numeric($code)) {
die('json输入参数需要数字');
} //如果存在请求的格式化类型
$type = isset($_GET['format']) ? $_GET['format'] : $type; $result = array(
'code' => $code,
'message' => $message,
'data' => $data,
); if ($type == 'json') {
self::json($result);
}
elseif($type == 'xml') {
self::xml($result);
}
elseif($type == 'array') {
echo '<pre>';
print_r($result);
echo '</pre>';
}
exit;
} } //可多维,缺少键名的数组,可由输入的format参数决定返回数据格式
$data = array(
'id' => 1,
'name' => 'haha',
'addr' => array(1,2,3=>array(22,'hh')),
); Response::show(200, 'success', $data);
?>

结果如下:

PHP开发APP接口---返回数据的封装类的更多相关文章

  1. 《PHP开发APP接口》笔记

    PHP开发APP接口 [TOC] 课程地址 imooc PHP开发APP接口 学习要点 APP接口简介 封装通信接口方法 核心技术 APP接口实例 服务器端 -> 数据库|缓存 -> 调用 ...

  2. PHP开发APP接口实现--基本篇

    最近一段时间一直在做APP接口,总结一下APP接口开发以来的心得,与大家分享: 1. 客户端/服务器接口请求流程: 安卓/IOS客户端   –> PHP接口 –> 服务器端  –> ...

  3. 酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)

    酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)   最近手头在开发一个游戏官网,在支付模块采用神州付技术支持,神州付数据表单中要求提供服务器返回地 ...

  4. PHP开发APP接口(二)

    这里将会调用前面博客的数据库连接单例.文件缓存类和开发APP接口(一) <?php // http://app.com/list.php?page-=1&pagesize=12 requ ...

  5. python3乱码问题:接口返回数据中文乱码问题解决

    昨天测试接口出现有一个接口中文乱码问题,现象: 1 浏览器请求返回显示正常 2 用代码请求接口返回数据中文显示乱码 3 使用的python3,python3默认unicode编码,中文都是可以正常显示 ...

  6. python接口自动化26-参数关联和JSESSIONID(上个接口返回数据作为下个接口请求参数)

    前言 参数关联是接口测试和性能测试最为重要的一个步骤,很多接口的请求参数是动态的,并且需要从上一个接口的返回值里面取出来,一般只能用一次就失效了. 最常见的案例就是网站的登录案例,很多网站的登录并不仅 ...

  7. mock模拟接口返回数据

    mock,是python中模拟接口返回数据 1.安装 pip install mock import unittest from mock import Mock def add(a,b): pass ...

  8. PHP开发APP接口之返回数据

    首先说明一下客户端APP通信的格式 1.xml:扩展标记语言(1.用来标记数据,定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言,xml格式统一,跨平台和语言,非常适合数据传输和通信,早已 ...

  9. PHP开发APP接口学习笔记

    习要点概述1.APP接口简介 2.封装通信接口方法 3.核心技术 4.APP接口实例 服务器和客户端进行接口数据通信:服务器 -->数据库|缓存 -->调用接口 -->客户端 服务器 ...

随机推荐

  1. ThinkPHP 快速入门

    1. 框架简介 框架是程序结构代码的集合,而不是业务逻辑代码.集合中包含了很多类.函数和功能类包.这个集合是按照一定标准组成的功能体系.体系有很多设计模式,比如MVC等. 2. ThinkPHP框架学 ...

  2. Struct2 拦截器

    拦截器的整个过程 程序是在执行Action之前调用的拦截器,整个过程是这样子的 这里面注意两个问题: public void serviceAction(HttpServletRequest requ ...

  3. MFC中树控件CTreeCtrl的用法

    树形控件可以用于树形的结构,其中有一个根接点(Root)然后下面有许多子结点,而每个子结点上有允许有一个或多个或没有子结点.MFC中使用CTreeCtrl类来封装树形控件的各种操作.通过调用 BOOL ...

  4. PAT 1012. The Best Rank

    To evaluate the performance of our first year CS majored students, we consider their grades of three ...

  5. angular js 表单验证

    <!doctype html> <html ng-app="myapp"> <head> <meta charset="UTF- ...

  6. java读取properties

    Java读取properties文件的方法比较多,网上我最多的文章是“Java读取properties文件的六种方法”,我看了好多的文章,在读到“博客之星-熔岩”的“Java读取properties文 ...

  7. poj 1149 Pigs 网络流-最大流 建图的题目(明天更新)-已更新

    题目大意:是有M个猪圈,N个顾客,顾客要买猪,神奇的是顾客有一些猪圈的钥匙而主人MIRKO却没有钥匙,多么神奇?顾客可以在打开的猪圈购买任意数量的猪,只要猪圈里有足够数量的猪.而且当顾客打开猪圈后mi ...

  8. 8086FLAG寄存器

    8086中的FLAG寄存器也就是状态标志位寄存器.它用来存储一些指令的计算结果,比如加法减法中的进位:为CPU运行某些命令提供根据,比如DF它决定是往前走指针还是向后走指针:总之状态寄存器存放的被称为 ...

  9. 固定ip

    192.168.1.111 255.255.255.0 192.168.1.1 8.8.8.8 202.96.134.33

  10. vi 使用笔记

    基本A 当前行追加J 去除本行和下一行之间的换行符(写CSS利器)~ 光标所在处的字符进行大小写互换* 向前搜索目前光标所在的单词# 向后搜索目前光标所在的单词% 查找与光标所在处相匹配的反括号, 包 ...