PHP生成接口數(shù)據(jù)格式(json和xml)
/**
* 生成接口數(shù)據(jù)格式
*/
class
Response{
/**
* [show 按綜合方式輸出數(shù)據(jù)]
* @param [int] $code [狀態(tài)碼]
* @param [string] $message [提示信息]
* @param array $data [數(shù)據(jù)]
* @param [string] $type [類型]
* @return [string] [返回值]
*/
public
function
show(
$code
,
$message
,
$data
=
array
(),
$type
=
''
){
if
(!
is_numeric
(
$code
)){
return
''
;
}
$result
=
array
(
'code'
=>
$code
,
'message'
=>
$message
,
'data'
=>
$data
);
if
(
$type
==
'json'
){
return
self::json(
$code
,
$message
,
$data
);
}
elseif
(
$type
==
'xml'
){
return
self::xml(
$code
,
$message
,
$data
);
}
else
{
//TODO
}
}
/**
* [json 按json方式輸出數(shù)據(jù)]
* @param [int] $code [狀態(tài)碼]
* @param [string] $message [提示信息]
* @param [array] $data [數(shù)據(jù)]
* @return [string] [返回值]
*/
public
static
function
json(
$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格式生成數(shù)據(jù)]
* @param [int] $code [狀態(tài)碼]
* @param [string] $message [提示信息]
* @param array $data [數(shù)據(jù)]
* @return [string] [返回值]
*/
public
static
function
xml(
$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(
$data
);
$xml
.=
"</root>"
;
return
$xml
;
}
public
static
function
xmlToEncode(
$data
){
$xml
=
''
;
foreach
(
$data
as
$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
(
"Zhang San"
,
"Li Si"
,
"Wang Wu"
,
"Zhao Liu"
,
"TianQi"
));
$response
=
new
Response();
$result
=
$response
:: show(200,
'success'
,
$grade
,
'json'
);
print_r(
$result
);
推薦文章
2025-01-18
2024-11-28
2024-11-09
2024-10-25
2024-06-25
2024-01-04
2023-11-06
2023-10-30
2023-10-13
2023-10-10
穩(wěn)定
產(chǎn)品高可用性高并發(fā)貼心
項(xiàng)目群及時(shí)溝通專業(yè)
產(chǎn)品經(jīng)理1v1支持快速
MVP模式小步快跑承諾
我們選擇聲譽(yù)堅(jiān)持
10年專注高端品質(zhì)開發(fā)聯(lián)系我們
友情鏈接: