当前位置:首页 > 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. $grade = array("score" => array(70, 95, 70.0, 60, "70"), "name" => array("Zhang San""Li Si""Wang Wu""Zhao Liu""TianQi")); 
  90. $response = new Response(); 
  91. $result = $response :: show(200,'success',$grade,'json'); 
  92. print_r($result); 

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

Tags: PHP生成json

分享到: