php教程

超轻量级php框架startmvc

PHP封装XML和JSON格式数据接口操作示例

更新时间:2020-04-03 08:49:42 作者:startmvc
本文实例讲述了PHP封装XML和JSON格式数据接口操作。分享给大家供大家参考,具体如下:使

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

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

1.JSON

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

2.XML

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

那么怎样构造呢?

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


<?php
//定义生成接口数据类
class Api
{
 /*
 * 生成json数据格式
 * @param integer $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
 );
 return json_encode($result);
 }
 /*
 * 生成xml数据格式
 * @param integer $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
 );
 //构造xml数据
 //使返回的数据以xml格式显示
 header("Content-Type:text/xml");
 //开始拼xml数据
 $xml = "<?xml version='1.0' encoding='UTF-8'?>";
 //根节点
 $xml .= "<root>";
 //创建一个额外函数来构造
 $xml .= self::xmlToEncode($result);
 $xml .= "</root>";
 return $xml;
 }
 //构造xml数据函数
 public static function xmlToEncode($data)
 {
 $xml = "";
 $attr = "";
 foreach($data as $key => $value)
 {
 //如果传递的数组是没有键值的话,<0>,<1>这种类型的节点是不合法的,所有就要判断了,如果是数字就这样<item id='0'>显示
 if(is_numeric($key)) {
 $attr = "id = '{$key}'";
 $key = "item";
 }
 //如果是数字就加上$attr
 $xml .= "<{$key}{$attr}>";
 //如果value是数组就进行递归
 $xml .= is_array($value) ? self::xmlToEncode($value) : $value;
 $xml .= "</{$key}>";
 }
 return $xml;
 }
}
//下面就来测试一下吧
$data = array(
 'id' => 1,
 'name' => 'zjp',
 'content' => array(
 'sex' => '男',
 'age' => '24',
 'num' => array(1,3,5,7,9)
 )
);
$xml = Api::xml(200, "返回数据成功", $data);
$json = Api::json(200, "返回数据成功", $data);
?>

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

json格式数据:

PS:本站还提供了如下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 封装 XML JSON 格式数据 接口