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自动选择 连接本地还是远程数据库
Dec 02 PHP
PHP求小于1000的所有水仙花数的代码
Jan 10 PHP
Linux中用PHP判断程序运行状态的2个方法
May 04 PHP
关于URL最大长度限制的相关资料查证
Dec 23 PHP
php抽象类用法实例分析
Jul 07 PHP
php简单备份与还原MySql的方法
May 09 PHP
微信 开发生成带参数的二维码的实例
Nov 23 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
May 23 PHP
Laravel学习教程之View模块详解
Sep 18 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
Oct 26 PHP
Laravel用户授权系统的使用方法示例
Sep 16 PHP
PHP连续签到功能实现方法详解
Dec 04 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中使用正则表达式提取中文实现笔记
2015/01/20 PHP
php计算两个整数的最大公约数常用算法小结
2015/03/05 PHP
PHP常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
php表单处理操作
2017/11/16 PHP
php弹出提示框的是实例写法
2019/09/26 PHP
表单(FORM)的一些实用效果代码
2007/03/25 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
node.js实现的装饰者模式示例
2017/09/06 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
vue双向数据绑定知识点总结
2018/04/18 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
js消除图片小游戏代码
2019/12/11 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
2020/07/30 Javascript
在Python的循环体中使用else语句的方法
2015/03/30 Python
python 遍历字符串(含汉字)实例详解
2017/04/04 Python
Python实现pdf文档转txt的方法示例
2018/01/19 Python
python微信跳一跳系列之色块轮廓定位棋盘
2018/02/26 Python
Python Web框架之Django框架Model基础详解
2019/08/16 Python
python处理自动化任务之同时批量修改word里面的内容的方法
2019/08/23 Python
PyQt5多线程防卡死和多窗口用法的实现
2020/09/15 Python
python复合条件下的字典排序
2020/12/18 Python
世界领先的豪华床上用品供应商之一:Bedeck Home
2019/03/18 全球购物
世界上最受欢迎的钓鱼诱饵:Rapala
2019/05/02 全球购物
涉外文秘个人求职的自我评价
2013/10/07 职场文书
2014年应届大学生自我评价
2014/01/09 职场文书
农民工工资支付承诺函
2014/03/31 职场文书
活动总结怎么写啊
2014/05/07 职场文书
反对邪教标语
2014/06/30 职场文书
先进班组材料范文
2014/12/25 职场文书
员工工作能力评语
2014/12/31 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
创业计划书之牛肉汤快餐店
2019/10/08 职场文书
浅谈PostgreSQL表分区的三种方式
2021/06/29 PostgreSQL
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
2022/06/21 Python