PHP封装XML和JSON格式数据接口操作示例


Posted in PHP onMarch 06, 2019

本文实例讲述了PHP封装XML和JSON格式数据接口操作。分享给大家供大家参考,具体如下:

使用PHP开发app后端的接口时,我们需要返回数据,最常用的就是XML和JSON格式的数据,那么样返回呢?

1.JSON

json数据是最容制造的,只要使用php自带的json_encode()函数就可以简单的制作出json数据了

2.XML

xml数据就要复杂一点了,让我们看一下xml数据的格式

PHP封装XML和JSON格式数据接口操作示例

那么怎样构造呢?

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格式数据:

PHP封装XML和JSON格式数据接口操作示例

PS:本站还提供了如下XML与JSON相关工具,方便大家参考使用:

在线XML/JSON互相转换工具:
http://tools.3water.com/code/xmljson

php代码在线格式化美化工具:
http://tools.3water.com/code/phpformat

在线XML格式化/压缩工具:
http://tools.3water.com/code/xmlformat

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.3water.com/code/jsoncodeformat

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
图书管理程序(二)
Oct 09 PHP
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
May 28 PHP
PHP下对数组进行排序的函数
Aug 08 PHP
php读取mysql的简单实例
Jan 15 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
Apr 30 PHP
destoon设置自定义搜索的方法
Jun 21 PHP
兼容ie6浏览器的php下载文件代码分享
Jul 14 PHP
php中的curl_multi系列函数使用例子
Jul 29 PHP
PHP统计目录大小的自定义函数分享
Nov 18 PHP
php获取数组元素中头一个数组元素值的实现方法
Dec 20 PHP
在PHP中使用FastCGI解析漏洞及修复方案
Nov 10 PHP
Yii框架参数配置文件params用法实例分析
Sep 11 PHP
浅谈PHP封装CURL
Mar 06 #PHP
Yaf框架封装的MySQL数据库操作示例
Mar 06 #PHP
PHP实现的敏感词过滤方法示例
Mar 06 #PHP
详解PHP 二维数组排序保持键名不变
Mar 06 #PHP
PHP获取ttf格式文件字体名的方法示例
Mar 06 #PHP
php ajax confirm 删除实例详解
Mar 06 #PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
Mar 06 #PHP
You might like
php XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
php&amp;mysql 日期操作小记
2012/02/27 PHP
php计算一个文件大小的方法
2015/03/30 PHP
功能强大的php文件上传类
2016/08/29 PHP
thinkPHP简单调用函数与类库的方法
2017/03/15 PHP
PHP CURL中传递cookie的方法步骤
2019/05/09 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
[原创]图片分页查看
2006/08/28 Javascript
实现复选框全选/全不选切换
2006/12/23 Javascript
javascript 检测浏览器类型和版本的代码
2009/09/15 Javascript
Javascript常考语句107条收集
2010/03/09 Javascript
在JS数组特定索引处指定位置插入元素的技巧
2014/08/24 Javascript
JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)
2015/12/03 Javascript
简单实现js页面切换功能
2021/01/10 Javascript
JavaScript实现定时页面跳转功能示例
2017/02/14 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
Vue2 使用 Echarts 创建图表实例代码
2017/05/18 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
JS闭包经典实例详解
2018/12/20 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
python实现QQ空间自动点赞功能
2019/04/09 Python
Python3 翻转二叉树的实现
2019/09/30 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
django queryset相加和筛选教程
2020/05/18 Python
Python如何合并多个字典或映射
2020/07/24 Python
HTML5标签嵌套规则详解【必看】
2016/04/26 HTML / CSS
基于 HTML5 WebGL 实现的医疗物流系统
2019/10/08 HTML / CSS
如何提高MySql的安全性
2014/06/19 面试题
年检委托书
2014/08/30 职场文书
购房委托书
2014/10/15 职场文书
工作表扬信范文
2015/01/17 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
my.ini优化mysql数据库性能的十个参数(推荐)
2021/05/26 MySQL
详解Python中下划线的5种含义
2021/07/15 Python