php 封装接口类返回json/xml数据

php 封装接口类返回json/xml数据

response.php

<?php

class Response {
    /*
    *按json格式返回数据
    *@param int $code 状态码
    *@param string $message 提示信息
    *@param arrya $data 数据
    *return string
    */
     public static function getJson($code ,$message = '',$data = array()) {

        if(!is_numeric($code)) {
            return '';
        }

        $arr = array(
            'code' => $code,
            'message' => $message,
            'data' => $data
        );

        echo json_encode($arr);
        exit;

     }
     /*
    *按xml格式返回数据
    *@param int $code 状态码
    *@param string $message 提示信息
    *@param arrya $data 数据
    *return string
    */
     public static function getXml($code,$message = '',$data = array()) {

        if(!is_numeric($code)) {
            return '';
        }

        header("Content-Type:text/xml");

        $result  = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
        $result .= "<root>\n";
        $result .= "<code>" . $code . "</code>\n";
        $result .= "<message>" . $message . "</message>\n";
        $result .= "<data>\n" . self::getData($data) . "</data>\n";
        $result .= "</root>";

        echo $result;
        exit;
     }
     /*
    *将$data转换为xml字符串
    *@param arrya $data 数据
    *return string
    */
     private static function getData($data = array()) {

        $str = '';

        foreach ($data as $key => $value) {

            $s = '';
            if(is_numeric($key)) {
                $s = " id='" . $key . "'";
                $key = "item";

            }

            $str .= "<" . $key . $s .">";
            $str .= is_array($value) ? "\n" . self::getData($value) : $value; 
            $str .= "</" .$key . ">\n";
        }
        return $str;
     }
}

在test.php中使用

<?php

require_once('./response.php');
$arr = array(
    'id'=>'1',
    'name'=>'2',
    'da' => array(
        'a' =>1,
        'b' =>2
        ),
    'ca' =>array(12,12)
    );
//Response::getjson(12,'1',$arr);
Response::getXml(12,'12',$arr);

猜你喜欢

转载自blog.csdn.net/wodecc_u/article/details/76723896