服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|

PHP封装XML和JSON格式数据接口操作示例

2019-06-05 11:05来源:励志成为一个弓箭手的程所属分类:PHP教程

这篇文章主要介绍了PHP封装XML和JSON格式数据接口操作,结合实例形式分析了php针对xml与json格式数据接口封装相关操作技巧,需要的朋友可以参考下

本文实例讲述了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格式数据接口操作示例

希望本文所述对大家PHP程序设计有所帮助。

延伸 · 阅读

精彩推荐
  • PHP教程2019年最好用的10个php开发工具推荐

    2019年最好用的10个php开发工具推荐

    对于PHP开发者,在互联网上有很多可用的开发工具,但对于初学者不知道哪个php开发工具比较好,找到一个合适的PHP开发工具是很难的,需要花费很多的时间精力。所以,今天php中文网就为初学者推荐几个2019年最好用的10个php开发...

    PHP中文网 324 2019-06-03
  • PHP教程PHP模型Model类封装数据库操作示例

    PHP模型Model类封装数据库操作示例

    这篇文章主要介绍了PHP模型Model类封装数据库操作,结合实例形式分析了php使用mysqli封装的针对数据库操作相关实现与使用技巧,需要的朋友可以参考下...

    小菜鸟有大梦想 222 2019-06-01
  • PHP教程ThinkPHP中图片按比例切割的代码实例

    ThinkPHP中图片按比例切割的代码实例

    今天小编就为大家分享一篇关于ThinkPHP中图片按比例切割的代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    yaohui_h 307 2019-06-04
  • PHP教程掌握PHP垃圾回收机制详解

    掌握PHP垃圾回收机制详解

    这篇文章主要介绍了PHP垃圾回收机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    子钦加油 224 2019-06-01
  • PHP教程使用PHPUnit进行单元测试并生成代码覆盖率报告的方法

    使用PHPUnit进行单元测试并生成代码覆盖率报告的方法

    这篇文章主要介绍了使用PHPUnit进行单元测试并生成代码覆盖率报告的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    big_cat 182 2019-06-04
  • PHP教程7种流行PHP集成开发工具(IDE)的比较

    7种流行PHP集成开发工具(IDE)的比较

    本文发掘集成开发环境(IDE)的所有用途,并比较 7 种流行的 IDE 的成本和优势。 编写关于PHP的系列文章让我更加深刻地了解了 PHP 开发人员的世界。我和许多 PHP 程序员交谈过,最令我惊奇的是只有很少的人使用 IDE。大多数程序员使...

    服务器之家 167 2019-06-03
  • PHP教程PHP添加PNG图片背景透明水印操作类定义与用法示例

    PHP添加PNG图片背景透明水印操作类定义与用法示例

    这篇文章主要介绍了PHP添加PNG图片背景透明水印操作类定义与用法,涉及php操作图片的显示、保存、压缩、水印添加等相关操作技巧,需要的朋友可以参考下...

    tangming20160613 447 2019-06-02
  • PHP教程PHP7内核之Reference详解

    PHP7内核之Reference详解

    这篇文章主要介绍了PHP7内核之Reference,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    风雪之隅 283 2019-06-01