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接口实例 服务器和客户端进行接口数据通信:服务器 -->数据库|缓存 -->调用接口 -->客户端 服务器 ...
随机推荐
- 长沙Uber优步司机奖励政策(2月1日~2月7日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- Ubuntu下Django初体验(三)——django初体验
Django中的重要概念: 一次web访问的实质: 1. 客户发送http请求到web服务回 2. web服务器返回html页面给客户 Django概述: 1. URL配置 建 ...
- 手机APP上下滚动翻页效果
//页面初期加载时 $(document).ready(function () { //加载第一页 LoadList(); //滚动换页 $( ...
- IOS开发之网络开发工具
IOS开发之网络开发工具 做移动端开发 常常会涉及到几个模块:1.网络检測 2.网络请求get和post请求 3.文件上传 4.文件下载 5.断点续传 如今将这些一一分享给大家 ,也欢迎 ...
- Android 解决双卡双待手机解析短信异常
开发中,难免会遇到各种各样的适配问题,尤其是经过深度修改定制过的系统,有的无论是软硬件上都有很大的区别,这里不得不提到一种奇葩的机型,没错,那就是双卡双待的手机(比如XT800, A60, S8600 ...
- Linux模式设计系列( 内核与应用关联思考)
http://blog.chinaunix.net/uid/20608849/cid-25333-list-2.html
- VS2010项目转化为VS2008项目
第一步: 打开VS2010项目的SLN文件有如下代码: Microsoft Visual Studio Solution File, Format Version 11.00# Visual Stud ...
- 关于json中对象的删除
一个json对象在后台产生了,但是有些数据可能无效或者不合法,所以需要在前台作些例外处理,比如删除掉. json的删除有很多种,直接用过 delete json对象方式. 举例如下 Js代码 var ...
- 使用httpModule做权限系统
页面请求过程: 根据这个流程,网上一般的权限验证在:Http.Module.AuthorizeRequestHttp.Module.PreRequestHandlerExecute 例如使用前者: u ...
- CentOS7安装Cobbler
安装EPEL源 # rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 安装cobbler ...