本文实例讲述了PHP封装XML和JSON格式数据接口操作。分享给大家供大家参考,具体如下:
使用PHP开发app后端的接口时,我们需要返回数据,最常用的就是XML和JSON格式的数据,那么样返回呢?
1.JSON
json数据是最容制造的,只要使用php自带的json_encode()
函数就可以简单的制作出json数据了
2.XML
xml数据就要复杂一点了,让我们看一下xml数据的格式

那么怎样构造呢?
3.制作生产接口数据的类
- <?php
- //定义生成接口数据类
- class Api
- {
- /*
- * 生成json数据格式
- * @param integer $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
- );
- return json_encode($result);
- }
- /*
- * 生成xml数据格式
- * @param integer $code 状态码
- * @param string $message 提示信息
- * @param array $data 数据
- * return string
- */
- public static function xml($code, $message = '', $data = array())
- {
- if(!is_numeric($code)) {
- return '';
- }
- $result = array(
- 'code' => $code,
- 'message' => $message,
- 'data' => $data
- );
- //构造xml数据
- //使返回的数据以xml格式显示
- header("Content-Type:text/xml");
- //开始拼xml数据
- $xml = "<?xml version='1.0' encoding='UTF-8'?>";
- //根节点
- $xml .= "<root>";
- //创建一个额外函数来构造
- $xml .= self::xmlToEncode($result);
- $xml .= "</root>";
- return $xml;
- }
- //构造xml数据函数
- public static function xmlToEncode($data)
- {
- $xml = "";
- $attr = "";
- foreach($data as $key => $value)
- {
- //如果传递的数组是没有键值的话,<0>,<1>这种类型的节点是不合法的,所有就要判断了,如果是数字就这样<item id='0'>显示
- if(is_numeric($key)) {
- $attr = "id = '{$key}'";
- $key = "item";
- }
- //如果是数字就加上$attr
- $xml .= "<{$key}{$attr}>";
- //如果value是数组就进行递归
- $xml .= is_array($value) ? self::xmlToEncode($value) : $value;
- $xml .= "</{$key}>";
- }
- return $xml;
- }
- }
- //下面就来测试一下吧
- $data = array(
- 'id' => 1,
- 'name' => 'zjp',
- 'content' => array(
- 'sex' => '男',
- 'age' => '24',
- 'num' => array(1,3,5,7,9)
- )
- );
- $xml = Api::xml(200, "返回数据成功", $data);
- $json = Api::json(200, "返回数据成功", $data);
- ?>
-
xml格式数据:上面那张介绍xml格式
json格式数据:

PS:jb51还提供了如下XML与JSON相关工具,方便大家参考使用:
在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson
php代码在线格式化美化工具:
http://tools.jb51.net/code/phpformat
在线XML格式化/压缩工具:
http://tools.jb51.net/code/xmlformat
json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat
更多关于PHP相关内容感兴趣的读者可查看jb51专题:《PHP中json格式数据操作技巧汇总》、《PHP针对XML文件操作技巧总结》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。