php 封装接口类返回json/xml数据
response.php
<?php
class Response {
/*
*按json格式返回数据
*@param int $code 状态码
*@param string $message 提示信息
*@param arrya $data 数据
*return string
*/
public static function getJson($code ,$message = '',$data = array()) {
if(!is_numeric($code)) {
return '';
}
$arr = array(
'code' => $code,
'message' => $message,
'data' => $data
);
echo json_encode($arr);
exit;
}
/*
*按xml格式返回数据
*@param int $code 状态码
*@param string $message 提示信息
*@param arrya $data 数据
*return string
*/
public static function getXml($code,$message = '',$data = array()) {
if(!is_numeric($code)) {
return '';
}
header("Content-Type:text/xml");
$result = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
$result .= "<root>\n";
$result .= "<code>" . $code . "</code>\n";
$result .= "<message>" . $message . "</message>\n";
$result .= "<data>\n" . self::getData($data) . "</data>\n";
$result .= "</root>";
echo $result;
exit;
}
/*
*将$data转换为xml字符串
*@param arrya $data 数据
*return string
*/
private static function getData($data = array()) {
$str = '';
foreach ($data as $key => $value) {
$s = '';
if(is_numeric($key)) {
$s = " id='" . $key . "'";
$key = "item";
}
$str .= "<" . $key . $s .">";
$str .= is_array($value) ? "\n" . self::getData($value) : $value;
$str .= "</" .$key . ">\n";
}
return $str;
}
}
在test.php中使用
<?php
require_once('./response.php');
$arr = array(
'id'=>'1',
'name'=>'2',
'da' => array(
'a' =>1,
'b' =>2
),
'ca' =>array(12,12)
);
//Response::getjson(12,'1',$arr);
Response::getXml(12,'12',$arr);