PHP开发APP接口---返回数据的封装类
参考视频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接口---返回数据的封装类的更多相关文章
- 《PHP开发APP接口》笔记
PHP开发APP接口 [TOC] 课程地址 imooc PHP开发APP接口 学习要点 APP接口简介 封装通信接口方法 核心技术 APP接口实例 服务器端 -> 数据库|缓存 -> 调用 ...
- PHP开发APP接口实现--基本篇
最近一段时间一直在做APP接口,总结一下APP接口开发以来的心得,与大家分享: 1. 客户端/服务器接口请求流程: 安卓/IOS客户端 –> PHP接口 –> 服务器端 –> ...
- 酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)
酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章) 最近手头在开发一个游戏官网,在支付模块采用神州付技术支持,神州付数据表单中要求提供服务器返回地 ...
- PHP开发APP接口(二)
这里将会调用前面博客的数据库连接单例.文件缓存类和开发APP接口(一) <?php // http://app.com/list.php?page-=1&pagesize=12 requ ...
- python3乱码问题:接口返回数据中文乱码问题解决
昨天测试接口出现有一个接口中文乱码问题,现象: 1 浏览器请求返回显示正常 2 用代码请求接口返回数据中文显示乱码 3 使用的python3,python3默认unicode编码,中文都是可以正常显示 ...
- python接口自动化26-参数关联和JSESSIONID(上个接口返回数据作为下个接口请求参数)
前言 参数关联是接口测试和性能测试最为重要的一个步骤,很多接口的请求参数是动态的,并且需要从上一个接口的返回值里面取出来,一般只能用一次就失效了. 最常见的案例就是网站的登录案例,很多网站的登录并不仅 ...
- mock模拟接口返回数据
mock,是python中模拟接口返回数据 1.安装 pip install mock import unittest from mock import Mock def add(a,b): pass ...
- PHP开发APP接口之返回数据
首先说明一下客户端APP通信的格式 1.xml:扩展标记语言(1.用来标记数据,定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言,xml格式统一,跨平台和语言,非常适合数据传输和通信,早已 ...
- PHP开发APP接口学习笔记
习要点概述1.APP接口简介 2.封装通信接口方法 3.核心技术 4.APP接口实例 服务器和客户端进行接口数据通信:服务器 -->数据库|缓存 -->调用接口 -->客户端 服务器 ...
随机推荐
- HttpClient中post请求http、https示例
HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建 ...
- Zend Framework 2参考Zend\Authentication(数据库表认证)
+ 转载自:Zend Framework 2参考Zend\Authentication(数据库表认证) 介绍 Zend\Authentication\Adapter\DbTable提供对存储在数据库表 ...
- Day 2 @ RSA Conference Asia Pacific & Japan 2016
上午有两场summits,议题分别是: sum-w01: G2B: Cyber-Business in Myanmar, Indonesia and Thailand sum-w02: Achievi ...
- java代理
首先,java中为什么要提出代理的设计模式呢?代理模式的作用是:为其它对象提供一种代理以控制对这个对象的訪问.在某些情况下,一个客户不想或者不能直接引用还有一个对象,而代理对象能够在client和目标 ...
- [Node.js] Node.js Buffers
>> node >>fs.readFile('finnish.txt', function(err,data){ console.log(data); }); // Outpu ...
- java 对象的this使用 java方法中参数传递特性 方法的递归
一.this关键字,使用的情形,以及如何使用. 1.使用的情形 类中的方法体中使用this --初始化该对象 类的构造器中使用this --引用,调用该方法的对象 2.不写this,调用 只要方法或 ...
- javascript常用方法(慢慢整理)
获取类型:[object object],[object function],[object Undefined]等 Object.prototype.toString.apply(obj); 获取对 ...
- GUI编程笔记(java)05:GUI事件监听机制原理和举例说明
1.事件监听机制: A:事件源 事件发生的地方 B:事件 就是要发生的事情 C:事件处理 就是针对发生的事情做 ...
- git 远程追踪
$ git branch --set-upstream-to origin/master http://stackoverflow.com/questions/21729560/how-to-make ...
- mybatis根据property获取column
mybatis根据property获取column mybatis根据类的属性获取xml文件中对应的column mybatis获取xml文件中property对应的column >>&g ...