PHP接口数据的封装XML和JSON(转)
Posted 迷神图卷
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP接口数据的封装XML和JSON(转)相关的知识,希望对你有一定的参考价值。
原博主的代码有误无法使用,本人调试修改后可以使用。
<?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); echo Api::xml(200, "返回数据成功", $data); //xmlToEncode($data); //$json = Api::json(200, "返回数据成功", $data); ?>
运行结果
原文链接:http://blog.csdn.net/sinat_21125451/article/details/51353615
以上是关于PHP接口数据的封装XML和JSON(转)的主要内容,如果未能解决你的问题,请参考以下文章
java 调用cxfWebService 接口返回类型是xml格式数据显示在jsp页面中该如何做到
php xml 和json转成Array(数组)格式和数组转成xml和json
php xml 和json转成Array(数组)格式和数组转成xml和json