PHP开发app封装XML和JSON格式数据接口操作实例

2019-03-0721:22:19后端程序开发Comments2,662 views字数 1515阅读模式

使用PHP开发app后端的接口时,我们需要返回数据,最常用的就是XML和JSON格式的数据,那么样返回呢?文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9819.html

1.JSON文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9819.html

json数据是最容制造的,只要使用php自带的json_encode()函数就可以简单的制作出json数据了文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9819.html

2.XML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9819.html

xml数据就要复杂一点了,让我们看一下xml数据的格式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9819.html

PHP开发app封装XML和JSON格式数据接口操作实例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9819.html

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9819.html

那么怎样构造呢?文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9819.html

3.制作生产接口数据的类文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9819.html

<?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格式文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9819.html

json格式数据:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9819.html

PHP开发app封装XML和JSON格式数据接口操作实例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9819.html

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9819.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/9819.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定