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 ?>