<?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;
}
}