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接口实例 服务器和客户端进行接口数据通信:服务器 -->数据库|缓存 -->调用接口 -->客户端 服务器 ...
随机推荐
- Docker&Kubernetes沙龙干货集锦:容器集群管理利器kubernetes详谈-CSDN.NET
Docker&Kubernetes沙龙干货集锦:容器集群管理利器kubernetes详谈-CSDN.NET undefined Package - crawler undefined 科学网- ...
- CentOS搭建GIT服务器【一】-仓库搭建以及基于gitosis的SSH方式访问
1.安装GIT核心 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel gcc g ...
- Hibernate的集合映射(Set、List、Array、Map、Bag)
POJOs如下: Customer类------>customer表 Order类对应---------->orders表 customer(1)<-------------- ...
- Bison executable not found in PATH by mysql install
[root@luozhonghua mysql-5.5.21]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/d ...
- GA遗传算法解析
LinJM @HQU 谈及遗传算法,我首先想到的就是孟德尔的豌豆实验.当然,遗传算法实质上并不能用豌豆实验说明,豌豆实验探讨了分离定律和自由组合定律,而遗传算法所借鉴的并不是这两个定律.遗传算法,简 ...
- OpenGL ES2学习笔记(9)-- 转换矩阵
线性代数是计算机图形学的一块基石,本篇文章总结如何在Shader中使用矩阵来移动.缩放和旋转顶点. 代码和效果 把下面的代码复制到OpenGL Console里: import java.nio.By ...
- 偷偷mark下一个
java书单 thinking in java java战 Effective Java 深入了解JVM虚拟机 java性能优化权威指南 JSR133 Google Guava官方教程 版权声明:本文 ...
- oracle1
引言: 数据保存问题? 可使用文件保存和数据库保存. 使用文件保存数据存在几个缺点: 1.文本的安全性问题: 2.文件不利于查询和对数据的管理: 3.文件不利于存放海量数据: 4.文件在程序中控制不方 ...
- iOS监听电话事件
项目上有个需求,要求打完电话后加积分. 首先导入这两个头文件: #import <CoreTelephony/CTCallCenter.h> #import <CoreTelepho ...
- VIM中文乱码(_vimrc配置文件备份)
_vimrc在用户目录下: set fileencodings=ucs-bom,utf-,cp936,gb18030,big5,euc-jp,euc-kr,latin1 set encoding=ut ...