经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » JSON » 查看文章
PHP封装XML和JSON格式数据接口操作示例
来源:jb51  时间:2019/3/7 8:29:47  对本文有异议

本文实例讲述了PHP封装XML和JSON格式数据接口操作。分享给大家供大家参考,具体如下:

使用PHP开发app后端的接口时,我们需要返回数据,最常用的就是XML和JSON格式的数据,那么样返回呢?

1.JSON

json数据是最容制造的,只要使用php自带的json_encode()函数就可以简单的制作出json数据了

2.XML

xml数据就要复杂一点了,让我们看一下xml数据的格式

那么怎样构造呢?

3.制作生产接口数据的类

  1. <?php
  2. //定义生成接口数据类
  3. class Api
  4. {
  5. /*
  6. * 生成json数据格式
  7. * @param integer $code 状态码
  8. * @param string $message 提示信息
  9. * $param array $data 数据
  10. * return string
  11. */
  12. public static function json($code, $message = '', $data = array())
  13. {
  14. //如果状态码不是数字就返回空
  15. if(!is_numeric($code)) {
  16. return '';
  17. }
  18. //构造返回数据
  19. $result = array(
  20. 'code' = > $code,
  21. 'message' => $message,
  22. 'data' => $data
  23. );
  24. return json_encode($result);
  25. }
  26. /*
  27. * 生成xml数据格式
  28. * @param integer $code 状态码
  29. * @param string $message 提示信息
  30. * @param array $data 数据
  31. * return string
  32. */
  33. public static function xml($code, $message = '', $data = array())
  34. {
  35. if(!is_numeric($code)) {
  36. return '';
  37. }
  38. $result = array(
  39. 'code' => $code,
  40. 'message' => $message,
  41. 'data' => $data
  42. );
  43. //构造xml数据
  44. //使返回的数据以xml格式显示
  45. header("Content-Type:text/xml");
  46. //开始拼xml数据
  47. $xml = "<?xml version='1.0' encoding='UTF-8'?>";
  48. //根节点
  49. $xml .= "<root>";
  50. //创建一个额外函数来构造
  51. $xml .= self::xmlToEncode($result);
  52. $xml .= "</root>";
  53. return $xml;
  54. }
  55. //构造xml数据函数
  56. public static function xmlToEncode($data)
  57. {
  58. $xml = "";
  59. $attr = "";
  60. foreach($data as $key => $value)
  61. {
  62. //如果传递的数组是没有键值的话,<0>,<1>这种类型的节点是不合法的,所有就要判断了,如果是数字就这样<item id='0'>显示
  63. if(is_numeric($key)) {
  64. $attr = "id = '{$key}'";
  65. $key = "item";
  66. }
  67. //如果是数字就加上$attr
  68. $xml .= "<{$key}{$attr}>";
  69. //如果value是数组就进行递归
  70. $xml .= is_array($value) ? self::xmlToEncode($value) : $value;
  71. $xml .= "</{$key}>";
  72. }
  73. return $xml;
  74. }
  75. }
  76. //下面就来测试一下吧
  77. $data = array(
  78. 'id' => 1,
  79. 'name' => 'zjp',
  80. 'content' => array(
  81. 'sex' => '男',
  82. 'age' => '24',
  83. 'num' => array(1,3,5,7,9)
  84. )
  85. );
  86. $xml = Api::xml(200, "返回数据成功", $data);
  87. $json = Api::json(200, "返回数据成功", $data);
  88. ?>
  89.  

xml格式数据:上面那张介绍xml格式

json格式数据:

PS:jb51还提供了如下XML与JSON相关工具,方便大家参考使用:

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

php代码在线格式化美化工具:
http://tools.jb51.net/code/phpformat

在线XML格式化/压缩工具:
http://tools.jb51.net/code/xmlformat

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat

更多关于PHP相关内容感兴趣的读者可查看jb51专题:《PHP中json格式数据操作技巧汇总》、《PHP针对XML文件操作技巧总结》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号