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 相关文章推荐
怎么样可以把 phpinfo()屏蔽掉?
Nov 24 PHP
jQuery EasyUI API 中文文档 - DateBox日期框
Oct 15 PHP
php提示undefined index的几种解决方法
May 21 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
Jun 25 PHP
PHP读取RSS(Feed)简单实例
Jun 12 PHP
WordPress后台中实现图片上传功能的实例讲解
Jan 11 PHP
ThinkPHP打水印及设置水印位置的方法
Oct 14 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
Feb 25 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
Nov 16 PHP
PHP convert_uudecode()函数讲解
Feb 14 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 PHP
详解PHP中curl_multi并发的实现
Jun 08 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 和 XML: 使用expat函数(二)
2006/10/09 PHP
19个Android常用工具类汇总
2014/12/30 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
addRule在firefox下的兼容写法
2006/11/30 Javascript
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
node+express制作爬虫教程
2016/11/11 Javascript
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
2017/09/22 Javascript
react 父子组件之间通讯props
2018/09/08 Javascript
详解vue项目打包步骤
2019/03/29 Javascript
layui实现数据分页功能(ajax异步)
2019/07/27 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
Python中的index()方法使用教程
2015/05/18 Python
Python smtplib实现发送邮件功能
2018/05/22 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
Python去除字符串前后空格的几种方法
2019/03/04 Python
python内存动态分配过程详解
2019/07/15 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
教师自我反思材料
2014/02/14 职场文书
科级干部考察材料
2014/02/15 职场文书
文员岗位职责范本
2014/03/08 职场文书
4s店活动策划方案
2014/08/25 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
建国大业电影观后感
2015/06/01 职场文书
决心书格式及范文
2019/06/24 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书
Pandas 数据编码的十种方法
2022/04/20 Python
Python 视频画质增强
2022/04/28 Python
oracle数据库去除重复数据
2022/05/20 Oracle