总体类
<?php
class Response{
const JSON='json';
?>
Json数据处理
/**
*json format data
*@param integer $code status code
*@param string $message message data
*@param array $data
*return string
*/
public static function jsonEncode($code,$message='',$data=array()){
if (!is_numeric($code)) {
return '';
}
$result=array(
'code'=>$code,
'message'=>$message,
'data'=>$data
);
echo json_encode($result);
exit();
}
XML数据处理
/**
*xml format data
*@param integer $code status code
*@param string $message message data
*@param arrat $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'?>\n";
$xml.="<root>\n";
$xml.=self::xmlToEncode($result);
$xml.="</root>";
echo $xml;
}
public static function xmlToEncode($data){
$xml="";
$attr="";
foreach ($data as $key => $value) {
if (is_numeric($key)) {
$attr=" id='{$key}'";
$key="item";
}
$xml.="<{$key}{$attr}>";
$xml.=is_array($value)?self::xmlToEncode($value):$value;
$xml.="</{$key}>\n";
}
return $xml;
}
XML-JSON混合数据处理
/**
*xml/json format data
*@param integer $code status code
*@param string $message message data
*@param arrat $data
*@param string $type data type
*return string
*/
public static function show($code,$message,$data=array(),$type=self::JSON){
if (!is_numeric($code)){
return '';
}
$type=isset($_GET['format'])?$_GET['format']:self::JSON;
$result=array(
'code'=>$code,
'message'=>$message,
'data'=>$data
);
if($type=='json'){
self::jsonEncode($code,$message,$data);
}elseif($type=='xml'){
self::xmlEncode($code,$message,$data);
}else{
self::jsonEncode($code,$message,$data);
}
}
测试调用
$data=array(
'id'=>1,
'bane'=>'valentine',
'type'=>array(4,5,6)
);
Response::show(200,'success',$data);