<?php
class Response{
/**
* 综合方式输出通信数据
* @param integer $code 状态吗
* @param integer ¥message 提示信息
* @param array $data数据
* @param string $type 数据类型
* return string
* */
public static function show ($code,$message='',$data=array(),$type){
if (is_numeric($code)){
return '';
}
$result =array(
'code'=>$code,
'message'=>$message,
'data'=>$data
);
$type =isset($_GET['format']) ?$_GET['format']:self::JSON;
if ($type == 'json'){
self::json($code,$message,$data);
exit;
}elseif ($type == 'array'){
var_dump($result);
}elseif ($type == 'xml'){
self::xmlEncode($code,$message,$data);
exit;
}else {
//TODO
}
}
/**
* 按json方式输出通信数据
* @param integer $code 状态吗
* @param integer ¥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
);
echo json_encode($result);
exit;
}
/**
* 按xml方式输出通信数据
* @param integer $code 状态吗
* @param integer ¥message 提示信息
* @param array $data数据
* return string
* */
public static function xmlEncode($code,$message='',$data=array()){
if (!is_numeric($code)){
return '';
}
$result =array(
'code'=>$code,
'message'=>$message,
'data'=>$data
);
header("Content-Type:text/xml");
$xml = "<?xml version=1.0 encoding ='UTF-8' ?>";
$xml.="<root>";
$xml.=self::xmlToEncoding($result);
$xml.="</root>";
}
/*
* xml 的节点值不能为数字
*
* */
public static function xmlToEncoding ($data){
$xml="";
foreach ($data as $key =>$value){
if (is_numeric($key)){
$att="id='{$key}'";
$key ="item";
}
$xml.="<{$key}{$att}>";
//递归处理
$xml.=is_array($value)?self::xmlToEncoding($value):$value;
$xml.="</{$key}>";
}
return $xml;
}
}