您当前的位置: 首页 >  php

王佳斌

暂无认证

  • 2浏览

    0关注

    821博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

PHP 简单封装返回XML数据接口

王佳斌 发布时间:2020-04-16 18:06:58 ,浏览量:2

如何生成XML?

php 中生成 XML 数据,通常有两种方式:

  1. 拼接字符串:顾名思义,将每段 xml 数据以字符串形式拼接到一起。
  2. 系统类:使用 php 提供的类,domDocument / XMLWriter / SimpleXML。
封装接口

我们使用第一种方式(拼接字符串)来封装 XML数据接口,代码中有详细注释。

';//xml head
        $xml .= '';//拼接根节点(开始)

        $xml .= self::toXML($result);//调用处理函数

        $xml .= '';//拼接根节点(结束)
        echo $xml;
    }

    # 解析结果数组转为对应的xml节点
    public static function toXML($data){//参数为data(result)

        # 临时存储xml数据
        $xml = $id = '';

        # 遍历并拼接字符串
        foreach($data as $key => $value){

            # 如果key是数字(即非关联数组 => [hello,2,true] )
            # 以  展示,id为key
            if(is_numeric($key)){//如果是数字
                $id = "id='{$key}'";//将key作为id属性
                $key = 'item ';//将item作为节点名
            }

            $xml .= "";//开始节点

            # 如果是数组则递归(否则直接返回value值)
            $xml .= is_array($value) ? self::toXML($value) : $value;

            $xml .= "";//结束节点
        }

        return $xml; 
    }
}

# 模拟数据
$data = [
    'id' => 1,
    'name' => '王佳斌',
    'type' => ['A','B','C'],//非关联数组
    'xx' => [//复杂混合数组
        [1,2,3],
        ['a' => 'aa', 'b' => 'bb']
    ]
];

# 调用
Response::xml(200, '返回成功', $data);

?>

结果如下: 在这里插入图片描述

关注
打赏
1665568777
查看更多评论
立即登录/注册

微信扫码登录

0.0368s