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 相关文章推荐
php 抽象类的简单应用
Sep 06 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
Mar 05 PHP
PHP判断图片格式的七种方法小结
Jun 03 PHP
10 个经典PHP函数
Oct 17 PHP
php计算数组不为空元素个数的方法
Jan 27 PHP
php打造智能化的柱状图程序,用于报表等
Jun 19 PHP
PHP实现转盘抽奖算法分享
Apr 15 PHP
PHP一个简单的无需刷新爬虫
Jan 05 PHP
PDO::beginTransaction讲解
Jan 27 PHP
PHP XML Expat解析器知识点总结
Feb 15 PHP
Laravel第三方包报class not found的解决方法
Oct 13 PHP
php中数组最简单的使用方法
Dec 27 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
第八节--访问方式
2006/11/16 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
2020/08/17 PHP
基于jquery的direction图片渐变动画效果
2010/05/24 Javascript
jquery随意添加移除html的实现代码
2011/06/21 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
jquery二级导航内容均分的原理及实现
2013/08/13 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
基于bootstrap插件实现autocomplete自动完成表单
2016/05/07 Javascript
EasyUI中在表单提交之前进行验证
2016/07/19 Javascript
AngularJS入门之动画
2016/07/27 Javascript
jQuery实现两个select控件的互移操作
2016/12/22 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
详解Vue组件之间通信的七种方式
2019/04/14 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
关于JSON解析的实现过程解析
2019/10/08 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
2020/08/14 Javascript
详解阿里Node.js技术文档之process模块学习指南
2021/01/04 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
python调用自定义函数的实例操作
2019/06/26 Python
Python代码生成视频的缩略图的实例讲解
2019/12/22 Python
Django模板之基本的 for 循环 和 List内容的显示方式
2020/03/31 Python
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
车间班长岗位职责
2013/11/30 职场文书
教育基金募捐倡议书
2014/05/14 职场文书
红领巾广播站广播稿
2014/10/19 职场文书
2015年元旦促销方案书
2014/12/09 职场文书