PHP-数组生成xml数据

本文提供了一个PHP示例,展示如何将数组转换为XML格式,适用于与第三方接口的数据交互场景。通过递归函数实现了复杂数据结构的XML映射。

PHP-数组生成xml数据, 最近因为公司和第三方合作, 经常要实现第三方接口,以xml数据作为交换格式, 写了个小demo,数组生成xml内容 

<?php


class Response{

    public static function getXml($data=array()){
        header("Content-Type:text/xml"); // 告诉浏览器这是xml数据
        $xml = '<?xml version="1.0" encoding="UTF-8" ?>'; //告诉浏览器和解析器这是1.0版本,编码格式是utf-8
        $xml .= "\n<root>"; 换行符,看的更直观
        $xml .= self::arrayToXml($data);
        $xml .= '</root>';
        return $xml;
    }

    public static function arrayToXml($data){
        $attr = '';
        $xml = '';
        if(is_array($data)){
            foreach($data as $key => $val){
                if(is_numeric($key)){
                    $attr = "id='$key'";
                    $key = "item ";
                }
                $xml .= "\n<{$key}{$attr}>";
                $xml .= is_array($val) ? self::arrayToXml($val) : $val;
                $xml .= "</{$key}>";
            }
        }
        $xml.="\n";
        return $xml;
    }

}

$data = array(
    'orders' => array(
        'order' =>array(
            'out_no' => 1234,
            'order_status' => 1,
            'shipping_status'   => 0,
            'pay_status'    => 0,
            'consignee' => 'xxx',
            'address'   => '最晚17:00前送到丰台区汽车博物馆东路盈坤世纪大厦G座503',
            'goods' => array(
                'good' => array(
                    'goods_sn' => '123',
                    'goods_number' => 100,
                    'goods_price'   => 138.88,
                    'goods_discount'    => 3,
                    'is_peijian'    => 0
                ),
                'numbers' => array('one','two','tree'),
            )
        )
    )
);

Response::getXml($data);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值