博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小蚂蚁学习APP接口开发(2)—— XML方式封装通信接口
阅读量:7152 次
发布时间:2019-06-29

本文共 2020 字,大约阅读时间需要 6 分钟。

hot3.png

    今天主要写一下XML方式封装通信接口的代码实现,XML的通信接口编写起来明显要比json的复杂一些,不过道理很简单,无非就是拼接成一个xml字符串输出,接着昨天的代码继续写。

$code, 'message' => $message, 'data' => $data ); //json_encode()把数组转化成json格式输出 echo json_encode($result); exit; } /*********************************** * 返回xml格式数据 * $param  integer  $code * $param  string   $message * $param  array    $data * return json * ******************************/ public static function xml($code,$message='',$data=array()){ //做出一个验证,如果不是数字,就返回空 if(!is_numeric($code)){ return ''; } //把穿进来的三个值,组装成一个数组 $result = array( 'code' => $code, 'message' => $message, 'data' => $data ); //便于浏览器输出xml格式文件 header('content-type:text/xml'); //拼接xml $xml.="
"; $xml.='
'; $xml.=self::xmlToEncode($result); //获取组装好的xml数据 $xml.='
'; echo $xml; exit; } public static function xmlToEncode($arr){ //准备一个接收的空数组 $xml=''; //将这个数组的键,作为节点名称,值作为内容 foreach ($arr as $key => $value) { /*约定一个规则,如果键是数字的话,格式为
aaa*/ if(is_numeric($key)){ $attr = " id='{$key}'";//属性的值需要带上引号,不然报错 $key = 'item'; } $xml.="<{$key}{$attr}>"; //如果$value的值是个多维数组的话,需要递归遍历 $xml.=is_array($value) ? self::xmlToEncode($value) : $value; $xml.="
"; } return $xml; }}$array=array( 'name'=>'学PHP的小蚂蚁', 'age'=>'27', 'sex'=>'male', 'url'=>'博客 http://my.oschina.net/woshixiaomayi/blog', 'like'=>array( 'eat'=>'apple', 'drink'=>'milk', 'happy', 'lucky' ) );Response::xml(200,'success',$array);/* 打印出来的样子
200
success
学PHP的小蚂蚁
27
male
博客 http://my.oschina.net/woshixiaomayi/blog
apple
milk
happy
lucky
*/ ?>

其中有两点需要注意:

  1.     在拼接xml字符串的时候,如果数据是一个多维的数组,这时候就需要递归遍历的方法来拼接字符串。

  2.     xml的节点名称不能为数字,所以采取了一个方法<item id='12'>的方法来代替,这个可以自定义的,根据自己需要定义。

转载于:https://my.oschina.net/woshixiaomayi/blog/516871

你可能感兴趣的文章
2102 石子归并 2
查看>>
poj 3352
查看>>
ubuntu卸载vmware player
查看>>
解决问题方法论
查看>>
Fedora下配置网卡
查看>>
ASP.NET页面生命周期
查看>>
solr6.6 配置自带中文分词
查看>>
DTCMS更改图片相册上传图片类型,手机上传图片相册
查看>>
JQuery 表格 隔行换色 和鼠标滑过的样式
查看>>
python数据结构(1)
查看>>
spring4+mybatis3+maven
查看>>
http请求头详解
查看>>
几何画板常见问题解决方案
查看>>
SMART原则
查看>>
[Elasticsearch] 全文搜索 (一) 基础概念和match查询
查看>>
比较.NET程序集(DLL或EXE)是否相同
查看>>
java 资料必备
查看>>
使用PHPExcel操作Excel用法实例分析
查看>>
最大子数组和(最大子段和)
查看>>
网络学习之路1
查看>>