首页 > 开发 > PHP > 正文

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

2024-05-04 23:35:19
字体:
来源:转载
供稿:网友

在做数据接口时,我们通常要获取第三方数据接口或者给第三方提供数据接口,而这些数据格式通常是以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. $result = array
  17. 'code' => $code
  18. 'message' => $message
  19. 'data' => $data 
  20. ); 
  21. if($type == 'json'){ 
  22. return self::json($code$message$data); 
  23. }elseif($type == 'xml'){ 
  24. return self::xml($code$message$data); 
  25. }else
  26. //TODO 
  27. /** 
  28. * [json 按json方式输出数据] 
  29. * @param [int] $code [状态码] 
  30. * @param [string] $message [提示信息] 
  31. * @param [array] $data [数据] 
  32. * @return [string] [返回值] 
  33. */ 
  34. public static function json($code$message$data = array()){ 
  35. if(!is_numeric($code)){ 
  36. return ''
  37. $result = array
  38. 'code' => $code
  39. 'message' => $message
  40. 'data' => $data 
  41. ); 
  42. $result = json_encode($result); 
  43. return $result
  44.  
  45. /** 
  46. * [xml 按xml格式生成数据] 
  47. * @param [int] $code [状态码] 
  48. * @param [string] $message [提示信息] 
  49. * @param array $data [数据] 
  50. * @return [string] [返回值] 
  51. */ 
  52. public static function xml($code$message$data = array()){ 
  53. if(!is_numeric($code)){ 
  54. return ''
  55. $result = array
  56. 'code' => $code
  57. 'message' => $message
  58. 'data' => $data 
  59. ); 
  60. header("Content-Type:text/xml"); 
  61. $xml = "<?xml version='1.0' encoding='UTF-8'?>/n"
  62. $xml .= "<root>/n"
  63. $xml .= self::xmlToEncode($data); 
  64. $xml .= "</root>"
  65. return $xml
  66.  
  67. public static function xmlToEncode($data){ 
  68. $xml = ''
  69. foreach($data as $key => $value){ 
  70. if(is_numeric($key)){ 
  71. $attr = "id='{$key}'"
  72. $key = "item"
  73. $xml .= "<{$key} {$attr}>/n"
  74. $xml .= is_array($value) ? self::xmlToEncode($value) : "{$value}/n"
  75. $xml .= "</{$key}>/n"
  76. return $xml
  77.  
  78. //测试 
  79. $grade = array("score" => array(70, 95, 70.0, 60, "70"), "name" => array("Zhang San""Li Si""Wang Wu""Zhao Liu""TianQi")); 
  80. $response = new Response(); 
  81. $result = $response :: show(200,'success',$grade,'json'); 
  82. print_r($result); 

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

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