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 相关文章推荐
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
Jun 08 PHP
用php的ob_start来生成静态页面的方法分析
Mar 09 PHP
php 错误处理经验分享
Oct 11 PHP
thinkphp验证码显示不出来的解决方法
Mar 29 PHP
thinkphp四种url访问方式详解
Nov 28 PHP
Nginx下配置codeigniter框架方法
Apr 07 PHP
WordPress中&quot;无法将上传的文件移动至&quot;错误的解决方法
Jul 01 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
Apr 27 PHP
快速解决PHP调用Word组件DCOM权限的问题
Dec 27 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 PHP
php高清晰度无损图片压缩功能的实现代码
Dec 09 PHP
php访问对象中的成员的实例方法
Nov 17 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指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
javascript写的异步加载js文件函数(支持数组传参)
2014/06/07 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
2015/08/19 Javascript
JavaScript判断按钮被点击的方法
2015/12/13 Javascript
常用原生JS兼容性写法汇总
2016/04/27 Javascript
Angular2表单自定义验证器的实现
2016/10/19 Javascript
jQuery中 $ 符号的冲突问题及解决方案
2016/11/04 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
javascript数组去重方法分析
2016/12/15 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
2017/02/14 Javascript
通过vue-cli3构建一个SSR应用程序的方法
2018/09/13 Javascript
详解javascript设计模式三:代理模式
2019/03/25 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
2020/06/02 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
[01:15]PWL S2开团时刻第二期——他们杀 我就白给
2020/11/25 DOTA
python获取android设备的GPS信息脚本分享
2015/03/06 Python
使用Python来开发Markdown脚本扩展的实例分享
2016/03/04 Python
python实现聊天小程序
2018/03/13 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
Python队列RabbitMQ 使用方法实例记录
2019/08/05 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
一款利用纯css3实现的超炫3D表单的实例教程
2014/12/01 HTML / CSS
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
让IE支持HTML5的方法
2012/12/11 HTML / CSS
幼儿园教研活动方案
2014/01/19 职场文书
行政工作个人的自我评价
2014/02/13 职场文书
英文推荐信格式范文
2014/05/09 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
团委工作总结2015
2015/04/02 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
2021/08/23 MySQL