现在主流的数据格式无非就是json和xml,下面我们来看看如何用php来封装一个返回这两种格式数据的类,下面青岛星网跟大家一起分享。

1、以json格式返回数据

json格式返回数据比较简单,直接将我们后台获取到的数据,以标准json格式返回给请求端即可//按json格式返回数据

public static function json($code,$message,$data=array()){

if(!is_numeric($code)){

return '';

}

$result=array(

"code"=>$code,

"message"=>$message,

"data"=>$data

);

echo json_encode($result);

}

2、以xml格式返回数据

这种方式需要遍历data里面的数据,如果数据里有数组还要递归遍历。还有一种特殊情况,当数组的下标为数字时,xml格式会报错,需要将xml中数字标签替换//按xml格式返回数据

public static function xmlEncode($code,$message,$data=array()){

if(!is_numeric($code)){

return '';

}

$result=array(

"code"=>$code,

"message"=>$message,

"data"=>$data

);

header("Content-Type:text/xml");

$xml="<?xml version='1.0' encoding='UTF-8'?>";

$xml.="";

$xml.=self::xmlToEncode($result);

$xml.="";

echo $xml;

}

public static function xmlToEncode($data){

$xml=$attr='';

foreach($data as $key=>$value){

if(is_numeric($key)){

$attr="id='{$key}'";

$key="item";

}

$xml.="";

$xml.=is_array($value)?self::xmlToEncode($value):$value;

$xml.="{$key}>";

}

return $xml;

}

}

3、将两种格式封装为一个方法,一个相应类代码如下class response{

public static function show($code,$message,$data=array(),$type='json'){

/**

*按综合方式输出通信数据

*@param integer $code 状态码

*@param string $message 提示信息

*@param array $data 数据

*@param string $type 数据类型

*return string

*/

if(!is_numeric($code)){

return '';

}

$result=array(

"code"=>$code,

"message"=>$message,

"data"=>$data

);

if($type=='json'){

self::json($code,$message,$data);

exit;

}elseif($type=='xml'){

self::xmlEncode($code,$message,$data);

exit;

}else{

//后续添加其他格式的数据

}

}

//按json格式返回数据

public static function json($code,$message,$data=array()){

if(!is_numeric($code)){

return '';

}

$result=array(

"code"=>$code,

"message"=>$message,

"data"=>$data

);

echo json_encode($result);

}

//按xml格式返回数据

public static function xmlEncode($code,$message,$data=array()){

if(!is_numeric($code)){

return '';

}

$result=array(

"code"=>$code,

"message"=>$message,

"data"=>$data

);

header("Content-Type:text/xml");

$xml="<?xml version='1.0' encoding='UTF-8'?>";

$xml.="";

$xml.=self::xmlToEncode($result);

$xml.="";

echo $xml;

}

public static function xmlToEncode($data){

$xml=$attr='';

foreach($data as $key=>$value){

if(is_numeric($key)){

$attr="id='{$key}'";

$key="item";

}

$xml.="";

$xml.=is_array($value)?self::xmlToEncode($value):$value;

$xml.="{$key}>";

}

return $xml;

}

}

$data=array(1,231,123465,array(9,8,'pan'));

response::show(200,'success',$data,'json');

这样我们调用show方法时,需要传递四个参数,第四个参数为想要返回的数据格式,默认为json格式。

这样我们就完成了对这两种数据格式的封装,可以随意返回这两种格式的数据了

php如何返回数据请求数据格式化,PHP以json或xml数据格式返回请求数据的封装代码...相关推荐

  1. httpf发送 json_Java用HttpClient3发送http/https协议get/post请求,发送map,json,xml,txt数据...

    使用的是httpclient 3.1, 使用"httpclient"4的写法相对简单点,百度:httpclient https post 当不需要使用任何证书访问https网页时, ...

  2. httpf发送 json_Java用HttpClient4发送http/https协议get/post请求,发送map,json,xml,txt数据...

    刚写出来的,还未经测试, HttpUtil.java import java.io.IOException; import java.io.UnsupportedEncodingException; ...

  3. 沪深A股分析数据龙虎榜信息API接口(JSON标准格式,Get请求方式)

    沪深A股分析数据龙虎榜信息API接口(JSON标准格式,Get请求方式) 数据来源:沪深A股股票数据API接口 麦蕊智数(www.mairui.club) 每日详情 ·  API接口:http://a ...

  4. 沪深A股分析数据投资参考信息API接口(JSON标准格式,Get请求方式)

    沪深A股分析数据投资参考信息API接口(JSON标准格式,Get请求方式) 数据来源:沪深A股股票数据API接口 麦蕊智数(www.mairui.club) 今日交易提示 ·  API接口:http: ...

  5. java接口返回xml格式_Java xml数据格式返回实现操作

    前言:对于服务器后端开发,接口返回的数据格式一般要求都是json,但是也有使用xml格式 RequestBody注解 对于SpringMVC,很多人会认为接口方法使用@Controller搭配@Res ...

  6. 沪深A股分析数据财务分析信息API接口(JSON标准格式,Get请求方式)

    数据来源:沪深A股股票数据API接口 麦蕊智数(www.mairui.club) 盈利能力 ·  API接口:http://api.mairui.club/hicw/yl/年度(如2020)/季度(如 ...

  7. 解析json数据_Retrofit同时解析JSON和XML数据格式

    前言 Android开发中,我们会经常遇到前端需要解析两种数据格式(json和xml),比如自己服务器返回的是json格式的数据,我们做微信登录的时候,微信返回的格式又是xml格式的.我们可以通过自己 ...

  8. python数据可视化开发(2):pandas读取Excel的数据格式处理(数据读取、指定列数据、DataFrame转json、数学运算、透视表运算输出)

    系列文章目录 python开发低代码数据可视化大屏:pandas.read_excel读取表格 python实现直接读取excle数据实现的百度地图标注 python数据可视化开发(1):Matplo ...

  9. php jsonerrorsyntax,php – json_decode返回JSON_ERROR_SYNTAX,但在线格式化程序表示JSON可以...

    我有一个非常奇怪的问题. 我有一个JSON webservice. 一切都好. 但是当我使用此代码加载我的JSON时: $data = file_get_contents('http://www.my ...

最新文章

  1. ICCV2021|一种用于解决点云场景中同类对象分割的网络
  2. 转载:JAVA中获取项目文件路径
  3. Linux 下Shell脚本删除过期文件
  4. Yii2.0 模态弹出框+ajax提交表单
  5. 【每天学一点linux】后台进程不打印日志
  6. VirtualBox COM对象获取失败
  7. MySQL使用用户变量需确定取值的顺序
  8. 二十八、电力窃漏电案例模型构建
  9. 转再次写给我们这些浮躁的程序员
  10. C# 断点续传原理与实现
  11. ROS 常用命令字典
  12. mysql必知必会_MySQL必知必会
  13. [原创].NET 业务框架开发实战之六 DAL的重构
  14. 人声处理_科唛课堂——人声的音频后期处理
  15. IPD咨询之企业营销体系解决方案:让营业额快速翻倍!
  16. 怎么做微信投票小程序_微信小程序里边怎么添加投票活动
  17. 【K8S】整体原理-K8S网络
  18. 图片水印怎么去掉?图片水印去除方法
  19. percona xtrabackup 之一 setup
  20. 元宇宙系列之AI虚拟人:“人”潮汹涌 探路未来

热门文章

  1. 宏基微型计算机c650使用方法,c650卧式车床的控制系统的pc控制改造毕业设计正文.doc...
  2. 王者S19服务器维护时间表,王者荣耀s19buff刷新时间一览 红蓝BUFF刷新间隔是多久...
  3. python 数据验证
  4. 数据恢复 从binlog文件
  5. go开源项目influxdb-relay源码分析(一)
  6. VS2015 解决方案 或者项目 卡 正在加载 的解决办法
  7. Entropy of Primitive: From Sparse Representation to Visual Information Evaluation(TCSVT2015)
  8. 前端面试题(html篇)
  9. C# 二种方法控制系统音量/麦克风大小
  10. Eclipse使用新手教程