json、xml ---- 数据格式生成类

自己写的一个生成json/xml 格式数据的类,可用于api数据传输:

 1 <?php
 2 class Response{
 3     /**
 4     *生成指定数据格式
 5     *@param intval $code 状态码
 6     *@param  string $message 状态说明
 7     *@param  array $data 数据
 8     *@param  string $type 要求返回的数据格式
 9     *@return string $data 数据
10     */
11    public static function dataType($code,$message,$data='',$type='xml'){
12 
13         if (in_array($type,array('json','xml','array'))) {
14             if ($type == 'json') {
15                 $data = self::json($code,$message,$data);
16             }elseif ($type == 'xml') {
17                 $data = self::xml($code,$message,$data);
18             }elseif ($type == 'array') {
19                 var_dump(self::data($code,$message,$data));
20             }else{
21                 exit;
22             }
23         }
24    }
25 
26     /**
27     *按json格式生成数据格式
28     *@param intval $code
29     *@param  string $message
30     *@param  array $data
31     *@return string
32     */
33     public static function json($code,$message,$data){
34         $data = self::data($code,$message,$data);
35         echo json_encode($data);
36         exit;
37     }
38     /**
39     *按xml格式生成数据格式
40     *@param intval $code
41     *@param  string $message
42     *@param  array $data
43     *@return string
44     */
45     public static function xml($code,$message,$data){
46         $data = self::data($code,$message,$data);
47         header("Content-Type:text/xml");
48         $xml = '<?xml version="1.0" encoding="UTF-8"?>';
49         $xml .= '<note>';
50         $xml .= self::xmlToEncode($data);
51         $xml .= '</note>';
52         echo $xml;
53         exit;
54     }
55     /**
56     *创建xml节点
57     *@param  array $data
58     *@return string $xml
59     */
60     public static function xmlToEncode($data){
61         $xml = '';
62         foreach ($data as $k=>$v) {
63             $attr = '';
64             if (is_numeric($k))  {
65                 $attr = " id='{$k}'";
66                 $k = 'item';
67             }
68             $xml .= "<{$k}{$attr}>";
69             $xml .= is_array($v)?self::xmlToEncode($v):$v;
70             $xml .= "</$k>";
71         }
72         return $xml;
73     }
74 
75     /**
76     *按array格式创建数据格式
77     *@param intval $code
78     *@param  string $message
79     *@param  array $data
80     *@return array $data
81     */
82     public static function data($code,$message,$data){
83         if (!is_numeric($code)) {
84             return '';
85         }
86         $data = array(
87             'code'=>$code,
88             'message'=>$message,
89             'data'=>$data
90             );
91         return $data;
92     }
93 
94 }
95 ?>

 

posted @ 2016-02-04 16:56  Dr點燃  阅读(191)  评论(0编辑  收藏  举报