原博主的代码有误无法使用,本人调试修改后可以使用。
<?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(转)
原文地址:https://www.cnblogs.com/CryOnMyShoulder/p/8376281.html