首页 > 开发 > PHP > 正文

PHP生成json和xml类型接口数据格式

2024-05-04 22:36:57
字体:
来源:转载
供稿:网友

php生成接口通信数据

/** * 生成接口数据格式 */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);

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表