PHP_APP(通信)接口—封装通信接口的方法
2015-08-11 18:17
453 查看
通信数据的标准格式:
code
状态码(200,400等);
message
提示信息(登录失败,数据返回成功等);
data
返回数据;
1、json 方式封装通信接口
方法:json_encode($value);
注:该函数只能接受utf-8编码的数据;如果传递其他格式的数据该函数会返回null;
2、xml的方式封装通信接口
方法:php生成xml数据;
首先php如何生成xml数据,总结有两种方法:
1.组装成xml字符串;
2.使用系统类(DomDocument、XMLWriter、SimpleXML);
code
状态码(200,400等);
message
提示信息(登录失败,数据返回成功等);
data
返回数据;
1、json 方式封装通信接口
方法:json_encode($value);
注:该函数只能接受utf-8编码的数据;如果传递其他格式的数据该函数会返回null;
<?php class Response { /** * 按json方式输出通信数据 * @param int $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * @return string */ public static function json($code,$message='',$data=array()) { if(!is_numeric($code)) return ''; $result = array( 'code'=>$code, 'message'=>$message, 'data'=>$data, ); echo json_encode($result); exit; } } ?>
2、xml的方式封装通信接口
方法:php生成xml数据;
首先php如何生成xml数据,总结有两种方法:
1.组装成xml字符串;
2.使用系统类(DomDocument、XMLWriter、SimpleXML);
<?php class Response { /** * 按xml方式输出通信数据 * @param int $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * @return void */ public static function xmlEncode($code,$message='',$data=array()) { $r = ''; if(!is_numeric($code)) $r = ''; $result = array( 'code'=>$code, 'message'=>$message, 'data'=>$data, ); header("Content-Type:text/xml"); $xml = "<?xml version='1.0' encoding='UTF-8'?>\n"; $xml .= "<root>\n"; $xml .= self::xmlToEncode($result); $xml .= "</root>"; $r = $xml; echo $r; } public static function xmlToEncode($data) { $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; } } ?>
相关文章推荐
- Android: 如何在Fragment中使用上下文Context
- IOS常用正则表达式
- android使用socket使底层和framework通信
- 1.ios
- Cool Android Apis 整理(二)
- Android M 六大新特性
- 【读书笔记】iOS-开发技巧-三种收起键盘的方法
- Cool Android Apis 整理(一)
- Android解惑 - 为什么要用Fragment.setArguments(Bundle bundle)来传递参数
- How Android Draws Views(Android 视图绘制机制)
- Android开发中遇到的exception
- 最简单的android annotation demo
- 【读书笔记】iOS-开发技巧-三种收起键盘的方法
- iOS 打包静态库
- Android编程权威指南:第21章挑战练习:有一个隐式intent
- Android 自定义控件 轻松实现360软件详情页
- Android 大神博客汇集
- unityshader固定管线的一些概念理解
- Android自定义View之随屏幕旋转的TextView
- Objective-C 表视图-分组、索引