json与xml数据输出类

class Response 
{
    /**
     * 按json方式输出通信数据
     * @param  integer $code 状态码
     * @param  string $message 提示信息
     * @param  array  $data 输入的数据类型
     * @return string  
     */
    public static function json_method($code,$message,$data=[])
    {
        if (!is_numeric($code)) {
            return '';
        }
        $res = array(
            'code'=>$code,
            'message'=>$message,
            'data'=>$data
        );
        return json_encode($res);
        exit;
    }
    /**
     * 按xml方式输出通信数据
     * @param  integer $code 状态码
     * @param  string $message 提示信息
     * @param  array  $data 输入的数据
     * @return string  
     */
    public static function xml_method($code,$message,$data=[])
    {
        if (!is_numeric($code)) {
            return '';
        }
        $res = array(
            'code'=>$code,
            'message'=>$message,
            'data'=>$data
        );
        header("Content-Type: text/xml");
        $xml = "<?xml version='1.0' encoding='UTF-8'?>\n";
        $xml .= "<root>\n";
        $xml .= self::xmlArrTrans($res);
        $xml .= "</root>";
        return $xml;
    }
    /**
     * 拼接输入的数组数据
     * @param  array $data 待拼接的数据
     * @return string 返回的数据
     */
    public static function xmlArrTrans($data)
    {    
        $xml = $attr = '';
        foreach ($data as $key => $value) {
            //判断$key是否为数字
            if (is_numeric($key)) {
                $attr = " id='{$key}'";
                $key =  "item";
            }
            $xml .= "<{$key}{$attr}>";
            //判断$value是否为数组
            $xml .= is_array($value)?self::xmlArrTrans($value):$value;
            $xml .= "</{$key}>\n";
        }
        return $xml;
    }
}

 

posted @ 2019-03-18 11:38  昊晗远昂  阅读(206)  评论(0编辑  收藏  举报