php api響應格式資料格式化Response類
阿新 • • 發佈:2018-12-14
<?php
/**
* Created by PhpStorm.
* User: 江
* Date: 2018/10/9
* Time: 11:49
*/
//用於顯示響應資訊
class Response
{
/**
* 格式常量
*/
const JSON="json";
/**
* 根據不同的格式把資料轉換成響應的格式輸出
* @param $code 狀態碼
* @param $message 提示資訊
* @param array $data 返回的資料
* @param string $type 返回資料的格式(json.xml,array)
* @return array|string
*/
public static function show($code,$message,$data=array(),$type=self::JSON){
//當傳入的返回碼不是數字時,return 空
if(!is_numeric($code)){
return '';
}
//當url後有format格式引數傳過來時,使用傳過來的引數進行處理
//沒有傳值過來就用函式 $type引數決定
$type=isset($_GET['format'])?$_GET['format'] :$type;
//組裝一下資料
$result=array(
'code'=>$code,
'message'=>$message,
'data'=>$data,
);
//根據 $type 進行分發
if($type=="json"){
self::jsonToEncode($code,$message,$data);
}elseif($type=="xml"){
self: :xmlToEncode($code,$message,$data);
}else{
//直接返回陣列格式
return $result;
}
}
/**
* 產生json格式資料
* @param $code
* @param $message
* @param array $data
*/
public static function jsonToEncode($code,$message,$data=array()){
$data=[
'code'=>$code,
'message'=>$message,
'data'=>$data
];
echo json_encode($data);
exit;
}
/***
* 產生xml格式資料
* @param $code
* @param $message
* @param array $data
*/
public static function xmlToEncode($code,$message,$data=array()){
$result=[
'code'=>$code,
'message'=>$message,
'data'=>$data
];
header("Content-Type:text/xml");
$xml="<?xml version='1.0' encoding='UTF-8' ?>";
$xml.="