php如何返回数据请求数据格式化,PHP以json或xml数据格式返回请求数据的封装代码...
现在主流的数据格式无非就是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数据格式返回请求数据的封装代码...相关推荐
- httpf发送 json_Java用HttpClient3发送http/https协议get/post请求,发送map,json,xml,txt数据...
使用的是httpclient 3.1, 使用"httpclient"4的写法相对简单点,百度:httpclient https post 当不需要使用任何证书访问https网页时, ...
- httpf发送 json_Java用HttpClient4发送http/https协议get/post请求,发送map,json,xml,txt数据...
刚写出来的,还未经测试, HttpUtil.java import java.io.IOException; import java.io.UnsupportedEncodingException; ...
- 沪深A股分析数据龙虎榜信息API接口(JSON标准格式,Get请求方式)
沪深A股分析数据龙虎榜信息API接口(JSON标准格式,Get请求方式) 数据来源:沪深A股股票数据API接口 麦蕊智数(www.mairui.club) 每日详情 · API接口:http://a ...
- 沪深A股分析数据投资参考信息API接口(JSON标准格式,Get请求方式)
沪深A股分析数据投资参考信息API接口(JSON标准格式,Get请求方式) 数据来源:沪深A股股票数据API接口 麦蕊智数(www.mairui.club) 今日交易提示 · API接口:http: ...
- java接口返回xml格式_Java xml数据格式返回实现操作
前言:对于服务器后端开发,接口返回的数据格式一般要求都是json,但是也有使用xml格式 RequestBody注解 对于SpringMVC,很多人会认为接口方法使用@Controller搭配@Res ...
- 沪深A股分析数据财务分析信息API接口(JSON标准格式,Get请求方式)
数据来源:沪深A股股票数据API接口 麦蕊智数(www.mairui.club) 盈利能力 · API接口:http://api.mairui.club/hicw/yl/年度(如2020)/季度(如 ...
- 解析json数据_Retrofit同时解析JSON和XML数据格式
前言 Android开发中,我们会经常遇到前端需要解析两种数据格式(json和xml),比如自己服务器返回的是json格式的数据,我们做微信登录的时候,微信返回的格式又是xml格式的.我们可以通过自己 ...
- python数据可视化开发(2):pandas读取Excel的数据格式处理(数据读取、指定列数据、DataFrame转json、数学运算、透视表运算输出)
系列文章目录 python开发低代码数据可视化大屏:pandas.read_excel读取表格 python实现直接读取excle数据实现的百度地图标注 python数据可视化开发(1):Matplo ...
- php jsonerrorsyntax,php – json_decode返回JSON_ERROR_SYNTAX,但在线格式化程序表示JSON可以...
我有一个非常奇怪的问题. 我有一个JSON webservice. 一切都好. 但是当我使用此代码加载我的JSON时: $data = file_get_contents('http://www.my ...
最新文章
- ICCV2021|一种用于解决点云场景中同类对象分割的网络
- 转载:JAVA中获取项目文件路径
- Linux 下Shell脚本删除过期文件
- Yii2.0 模态弹出框+ajax提交表单
- 【每天学一点linux】后台进程不打印日志
- VirtualBox COM对象获取失败
- MySQL使用用户变量需确定取值的顺序
- 二十八、电力窃漏电案例模型构建
- 转再次写给我们这些浮躁的程序员
- C# 断点续传原理与实现
- ROS 常用命令字典
- mysql必知必会_MySQL必知必会
- [原创].NET 业务框架开发实战之六 DAL的重构
- 人声处理_科唛课堂——人声的音频后期处理
- IPD咨询之企业营销体系解决方案:让营业额快速翻倍!
- 怎么做微信投票小程序_微信小程序里边怎么添加投票活动
- 【K8S】整体原理-K8S网络
- 图片水印怎么去掉?图片水印去除方法
- percona xtrabackup 之一 setup
- 元宇宙系列之AI虚拟人:“人”潮汹涌 探路未来
热门文章
- 宏基微型计算机c650使用方法,c650卧式车床的控制系统的pc控制改造毕业设计正文.doc...
- 王者S19服务器维护时间表,王者荣耀s19buff刷新时间一览 红蓝BUFF刷新间隔是多久...
- python 数据验证
- 数据恢复 从binlog文件
- go开源项目influxdb-relay源码分析(一)
- VS2015 解决方案 或者项目 卡 正在加载 的解决办法
- Entropy of Primitive: From Sparse Representation to Visual Information Evaluation(TCSVT2015)
- 前端面试题(html篇)
- C# 二种方法控制系统音量/麦克风大小
- Eclipse使用新手教程