当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-27 09:34:36 浏览: 评论:0 

在做数据接口时,我们通常要获取第三方数据接口或者给第三方提供数据接口,而这些数据格式通常是以XML或者JSON格式传输,本文将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的XML数据。

php生成接口通信数据:

  1. /** 
  2.  * 生成接口数据格式 
  3.  */ 
  4. class Response{ 
  5.   /** 
  6.    * [show 按综合方式输出数据] 
  7.    * @param [int] $code    [状态码] 
  8.    * @param [string] $message [提示信息] 
  9.    * @param array $data  [数据] 
  10.    * @param [string] $type [类型] 
  11.    * @return [string]    [返回值] 
  12.    */ 
  13.   public static function show($code, $message, $data = array(),$type = ''){ 
  14.     if(!is_numeric($code)){ 
  15.       return ''; 
  16.     } 
  17.     $result = array( 
  18.       'code' => $code, 
  19.       'message' => $message, 
  20.       'data' => $data 
  21.     ); 
  22.     if($type == 'json'){ 
  23.       return self::json($code, $message, $data); 
  24.     }elseif($type == 'xml'){ 
  25.       return self::xml($code, $message, $data); 
  26.     }else{ 
  27.       //TODO 
  28.     } 
  29.   } 
  30.   /** 
  31.    * [json 按json方式输出数据] 
  32.    * @param [int] $code    [状态码] 
  33.    * @param [string] $message [提示信息] 
  34.    * @param [array] $data  [数据] 
  35.    * @return [string]     [返回值] 
  36.    */ 
  37.   public static function json($code, $message, $data = array()){ 
  38.     if(!is_numeric($code)){ 
  39.       return ''; 
  40.     } 
  41.     $result = array( 
  42.       'code' => $code, 
  43.       'message' => $message, 
  44.       'data' => $data 
  45.     ); 
  46.     $result = json_encode($result); 
  47.     return $result; 
  48.   } 
  49.    
  50.   /** 
  51.    * [xml 按xml格式生成数据] 
  52.    * @param [int] $code    [状态码] 
  53.    * @param [string] $message [提示信息] 
  54.    * @param array $data   [数据] 
  55.    * @return [string]     [返回值] 
  56.    */ 
  57.   public static function xml($code, $message, $data = array()){ 
  58.     if(!is_numeric($code)){ 
  59.       return ''; 
  60.     } 
  61.     $result = array( 
  62.       'code' => $code, 
  63.       'message' => $message, 
  64.       'data' => $data 
  65.     ); 
  66.     header("Content-Type:text/xml"); 
  67.     $xml = "<?xml version='1.0' encoding='UTF-8'?>\n"; 
  68.     $xml .= "<root>\n"; 
  69.     $xml .= self::xmlToEncode($data); 
  70.     $xml .= "</root>"; 
  71.     return $xml; 
  72.   } 
  73.    
  74.   public static function xmlToEncode($data){ 
  75.     $xml = ''; 
  76.     foreach($data as $key => $value){ 
  77.       if(is_numeric($key)){ 
  78.         $attr = "id='{$key}'"; 
  79.         $key = "item"; 
  80.       } 
  81.       $xml .= "<{$key} {$attr}>\n"; 
  82.       $xml .= is_array($value) ? self::xmlToEncode($value) : "{$value}\n"; 
  83.       $xml .= "</{$key}>\n"; 
  84.     } 
  85.     return $xml; 
  86.   } 
  87. } 
  88.    
  89. //测试 
  90. $grade = array("score" => array(70, 95, 70.0, 60, "70"), "name" => array("Zhang San", "Li Si", "Wang Wu", "Zhao Liu", "TianQi")); 
  91. $response = new Response(); 
  92. $result = $response :: show(200,'success',$grade,'json'); 
  93. print_r($result); 

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

Tags: PHP生成json

分享到: