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&amp;&amp;mysql)五
Oct 09 PHP
php基础知识:函数基础知识
Dec 13 PHP
IP138 IP地址查询小偷实现代码
Feb 15 PHP
php.ini 配置文件的深入解析
Jun 17 PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 PHP
php面向对象中static静态属性和静态方法的调用
Feb 08 PHP
php统计数组元素个数的方法
Jul 02 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
PHP strcmp()和strcasecmp()的区别实例
Nov 05 PHP
PHP数组常用函数实例小结
Aug 20 PHP
mongodb和php的用法详解
Mar 25 PHP
PHP操作Redis常用命令的实例详解
Dec 23 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源代码
2009/08/21 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
详解PHP的Yii框架中日志的相关配置及使用
2015/12/08 PHP
php生成mysql的数据字典
2016/07/07 PHP
浅析php中array_map和array_walk的使用对比
2016/11/20 PHP
PHP使用ajax的post方式下载excel文件简单示例
2019/08/06 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
javascript 年月日联动实现核心代码
2009/12/21 Javascript
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
js常用系统函数用法实例分析
2015/01/12 Javascript
浅谈javascript中onbeforeunload与onunload事件
2015/12/10 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
JavaScript递归算法生成树形菜单
2017/08/15 Javascript
js删除数组中的元素delete和splice的区别详解
2018/02/03 Javascript
通过JS运行机制的角度说说作用域
2019/03/12 Javascript
vue实现局部刷新的实现示例
2019/04/16 Javascript
websocket4.0+typescript 实现热更新的方法
2019/08/14 Javascript
小程序调用微信支付的方法
2019/09/26 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
Python实现简单拆分PDF文件的方法
2015/07/30 Python
python循环输出三角形图案的例子
2019/11/22 Python
Python爬虫之Selenium设置元素等待的方法
2020/12/04 Python
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
外语学院毕业生的自我鉴定
2013/11/28 职场文书
企业管理毕业生求职信范文
2014/03/07 职场文书
初三新学期计划书
2014/05/03 职场文书
地球一小时宣传标语
2014/06/24 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
语文复习计划
2015/01/19 职场文书
2015年度班主任自我评价
2015/03/11 职场文书
七年级数学教学反思
2016/02/17 职场文书
Oracle创建只读账号的详细步骤
2021/06/07 Oracle
MySQL学习之基础命令实操总结
2022/03/19 MySQL