使用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格式数据:
手机桌面自动换壁纸怎么关 手机取消自动换壁纸的详细步骤阿里云服务器10g内存域名租赁费企业建网站是不是一定要备案成都云服务器怎么样文件管理打不开换了几个浏览器还是不行如何注册小程序域名打印机上复印10份怎么设置3月份开年采购季云服务器秒杀