class Response
{
const JSON = "json";
//封装json,xml两种输出到一个入口方法中
public static function show($code,$message,$data=[],$type=self::JSON)
{
if (!is_numeric($code)) {
return "";
}
$type = isset($_GET['format']) ? $_GET['format']:self::JSON;
$result = [
'code' => $code,
'message' => $message,
'data' => $data,
];
if ($type == 'json') {
self::json($code,$message,$data);
exit();
}elseif ($type == 'array') {
var_dump($result);die();
}elseif ($type == 'xml') {
self::xmlEncode($code,$message,$data);
exit();
}else{
//TODO
}
}
//输出json格式数据
public static function json($code,$message,$data=[])
{
if (!is_numeric($code)) {
return "";
}
$result = [
'code' => $code,
'message' => $message,
'data' => $data,
];
echo json_encode($result);
}
//输出xml格式数据
public static function xmlEncode($code,$message,$data)
{
if (!is_numeric($code)) {
return "";
}
$result = [
'code' => $code,
'message'=> $message,
'data' => $data,
];
header("Content-Type:text/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;
}
}
//测试数据
$data =[
'id' => 20,
'name' =>'zhangsan',
'group'=>[
'id' => 20,
'name' =>'zhangsan',
'group'=>[1,2,3,4,5,6]
],
];
Response::show(200,'测试哦',$data,'xml');
Response::show(200,'测试哦',$data,'array');
Response::show(200,'测试哦',$data);
PHP封装XML和JSON数据接口类
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- array( 'index' => 'api' ) response.php array(3,4,5); 修改的代...
- 基于鸿洋的okhttputils 封装 请求网络返回的JSON数据,用下面几行代码即可使用返回的JSON实体类De...