php生成接口通信数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
/**
* 生成接口数据格式
*/
class Response{
/**
* [show 按综合方式输出数据]
* @param [int] $code [状态码]
* @param [string] $message [提示信息]
* @param array $data [数据]
* @param [string] $type [类型]
* @return [string] [返回值]
*/
public static 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方式输出数据]
* @param [int] $code [状态码]
* @param [string] $message [提示信息]
* @param [array] $data [数据]
* @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格式生成数据]
* @param [int] $code [状态码]
* @param [string] $message [提示信息]
* @param array $data [数据]
* @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 );
|
以上所述就是本文的全部内容了,希望大家能够喜欢。