zoukankan      html  css  js  c++  java
  • 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 ?>
  • 相关阅读:
    Codeforces 845E Fire in the City 线段树
    Codeforces 542D Superhero's Job dp (看题解)
    Codeforces 797F Mice and Holes dp
    Codeforces 408D Parcels dp (看题解)
    Codeforces 464D World of Darkraft
    Codeforces 215E Periodical Numbers 容斥原理
    Codeforces 285E Positions in Permutations dp + 容斥原理
    Codeforces 875E Delivery Club dp
    Codeforces 888F Connecting Vertices 区间dp (看题解)
    Codeforces 946F Fibonacci String Subsequences dp (看题解)
  • 原文地址:https://www.cnblogs.com/lilili/p/5181945.html
Copyright © 2011-2022 走看看