PHP生成json和xml类型接口数据格式
php生成接口通信数据
/**
*生成接口数据格式
*/
classResponse{
/**
*[show按综合方式输出数据]
*@param[int]$code[状态码]
*@param[string]$message[提示信息]
*@paramarray$data[数据]
*@param[string]$type[类型]
*@return[string][返回值]
*/
publicstaticfunctionshow($code,$message,$data=array(),$type=''){
if(!is_numeric($code)){
return'';
}
$result=array(
'code'=>$code,
'message'=>$message,
'data'=>$data
);
if($type=='json'){
returnself::json($code,$message,$data);
}elseif($type=='xml'){
returnself::xml($code,$message,$data);
}else{
//TODO
}
}
/**
*[json按json方式输出数据]
*@param[int]$code[状态码]
*@param[string]$message[提示信息]
*@param[array]$data[数据]
*@return[string][返回值]
*/
publicstaticfunctionjson($code,$message,$data=array()){
if(!is_numeric($code)){
return'';
}
$result=array(
'code'=>$code,
'message'=>$message,
'data'=>$data
);
$result=json_encode($result);
return$result;
}
/**
*[xml按xml格式生成数据]
*@param[int]$code[状态码]
*@param[string]$message[提示信息]
*@paramarray$data[数据]
*@return[string][返回值]
*/
publicstaticfunctionxml($code,$message,$data=array()){
if(!is_numeric($code)){
return'';
}
$result=array(
'code'=>$code,
'message'=>$message,
'data'=>$data
);
header("Content-Type:text/xml");
$xml="<?xmlversion='1.0'encoding='UTF-8'?>\n";
$xml.="<root>\n";
$xml.=self::xmlToEncode($data);
$xml.="</root>";
return$xml;
}
publicstaticfunctionxmlToEncode($data){
$xml='';
foreach($dataas$key=>$value){
if(is_numeric($key)){
$attr="id='{$key}'";
$key="item";
}
$xml.="<{$key}{$attr}>\n";
$xml.=is_array($value)?self::xmlToEncode($value):"{$value}\n";
$xml.="</{$key}>\n";
}
return$xml;
}
}
//测试
$grade=array("score"=>array(70,95,70.0,60,"70"),"name"=>array("ZhangSan","LiSi","WangWu","ZhaoLiu","TianQi"));
$response=newResponse();
$result=$response::show(200,'success',$grade,'json');
print_r($result);
以上所述就是本文的全部内容了,希望大家能够喜欢。