php调用xml接口,php开发app接口,支持json和xml

在日常api开发中遇到所遇到的问题,我们知道api接口开发一般有两种方式:json,xml这里我整理了一个api接口类可以规定显示方式:api.phpclass Response {

const JSON = 'json';

/*

*按综合方式输出通讯数据

*@param integer $code 状态码

*@param string $message 提示信息

*@param array $data 数据

*@param array $type 数据类型

*return string

*/

public static function show($code, $message = "", $data = array(), $type = self::JSON) {

if(!is_numeric($code)){

return '';

}

$type = isset($_GET['format']) ? $_GET['format'] : self::JSON;

$result = array(

'code' => $code,

'message' => $message,

'data' => $data

);

if ($type == 'json') {

self::json($code, $message, $data);

exit;

} elseif ($type == "array") {

echo "

";

var_dump($result);

} elseif ($type == 'xml') {

self::xmlEncode($code, $message, $data);

exit;

} else {

//Todo

}

}

/*

*按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

);

echo json_encode($result);

exit;

}

/*

*按xml方式输出通讯数据

*@param integer $code 状态码

*@param string $message 提示信息

*@param array $data 数据

*return string

*/

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' ?>".PHP_EOL;

$xml .="".PHP_EOL;

$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}>".PHP_EOL;

}

return $xml;

}

}

调用方式如下(支持传递参数?type=json/xml规定显示数据类型):require_once('./api.php');

$data = array(

'id' => 1,

'name' => 'donglianyou',

'type' => array(4,5,6),

'test' => array(1,34,65=>array(123,'good'),),

);

Response::show(200, 'success', $data, 'json');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值