• 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 ?>
  • 相关阅读:
    【框架学习与探究之定时器--Hangfire】
    【框架学习与探究之AOP--Castle DynamicProxy】
    【框架学习与探究之消息队列--EasyNetQ(2)】
    【框架学习与探究之消息队列--EasyNetQ(1)】
    【框架学习与探究之宿主服务--Topshelf】
    【框架学习与探究之定时器--Quartz.Net 】
    【C# in depth 第三版】温故而知新(2)
    【C# in depth 第三版】温故而知新(1)
    Hexo集成Algolia搜索插件时遇到的问题
    一日一练-了解几个视频相关的知识点
  • 原文地址:https://www.cnblogs.com/lilili/p/5181945.html
Copyright © 2020-2023  润新知