PHP生成json和xml类型接口数据格式


Posted in PHP onMay 17, 2015

php生成接口通信数据

/**
 * 生成接口数据格式
 */
class Response{
  /**
   * [show 按综合方式输出数据]
   * @param [int] $code    [状态码]
   * @param [string] $message [提示信息]
   * @param array $data  [数据]
   * @param [string] $type [类型]
   * @return [string]    [返回值]
   */
  public static function show($code, $message, $data = array(),$type = ''){
    if(!is_numeric($code)){
      return '';
    }
    $result = array(
      'code' => $code,
      'message' => $message,
      'data' => $data
    );
    if($type == 'json'){
      return self::json($code, $message, $data);
    }elseif($type == 'xml'){
      return self::xml($code, $message, $data);
    }else{
      //TODO
    }
  }
  /**
   * [json 按json方式输出数据]
   * @param [int] $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
    );
    $result = json_encode($result);
    return $result;
  }
 
  /**
   * [xml 按xml格式生成数据]
   * @param [int] $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
    );
    header("Content-Type:text/xml");
    $xml = "<?xml version='1.0' encoding='UTF-8'?>\n";
    $xml .= "<root>\n";
    $xml .= self::xmlToEncode($data);
    $xml .= "</root>";
    return $xml;
  }
 
  public static function xmlToEncode($data){
    $xml = '';
    foreach($data as $key => $value){
      if(is_numeric($key)){
        $attr = "id='{$key}'";
        $key = "item";
      }
      $xml .= "<{$key} {$attr}>\n";
      $xml .= is_array($value) ? self::xmlToEncode($value) : "{$value}\n";
      $xml .= "</{$key}>\n";
    }
    return $xml;
  }
}
 
//测试
$grade = array("score" => array(70, 95, 70.0, 60, "70"), "name" => array("Zhang San", "Li Si", "Wang Wu", "Zhao Liu", "TianQi"));
$response = new Response();
$result = $response :: show(200,'success',$grade,'json');
print_r($result);

以上所述就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
使用PHP维护文件系统
Oct 09 PHP
php打开文件fopen函数的使用说明
Jul 05 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
Aug 20 PHP
php目录拷贝实现方法
Jul 10 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
Jan 14 PHP
PHP实现QQ登录实例代码
Jan 14 PHP
微信支付开发发货通知实例
Jul 12 PHP
Yii2中DropDownList简单用法示例
Jul 18 PHP
验证坐标在某坐标区域内php代码
Oct 08 PHP
thinkPHP5框架接口写法简单示例
Aug 05 PHP
TP5框架实现的数据库备份功能示例
Apr 05 PHP
php操作redis常见方法示例【key与value操作】
Apr 14 PHP
php实现文本数据导入SQL SERVER
May 17 #PHP
php中PDO方式实现数据库的增删改查
May 17 #PHP
PHP图像处理类库及演示分享
May 17 #PHP
递归实现php数组转xml的代码分享
May 14 #PHP
php编写批量生成不重复的卡号密码代码
May 14 #PHP
php编写的抽奖程序中奖概率算法
May 14 #PHP
深入浅出php socket编程
May 13 #PHP
You might like
PHP Pear 安装及使用
2009/03/19 PHP
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
如何使用FireFox插件FirePHP调试PHP
2013/07/23 PHP
YII实现分页的方法
2014/07/09 PHP
Fastest way to build an HTML string(拼装html字符串的最快方法)
2011/08/20 Javascript
简单的代码实现jquery定时器
2013/11/17 Javascript
JavaScript中的undefined学习总结
2013/11/30 Javascript
JavaScript删除指定子元素代码实例
2015/01/13 Javascript
JS运动框架之分享侧边栏动画实例
2015/03/03 Javascript
JavaScript制作简易的微信打飞机
2015/03/31 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
Angular模版驱动表单的使用总结
2018/05/05 Javascript
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
一看就会的vuex实现登录验证(附案例)
2020/01/09 Javascript
小程序双头slider选择器的实现示例
2020/03/31 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
2020/04/30 Javascript
区分vue-router的hash和history模式
2020/10/03 Javascript
小程序中手机号识别的示例
2020/12/14 Javascript
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
Python File readlines() 使用方法
2018/03/19 Python
利用Python yagmail三行代码实现发送邮件
2018/05/11 Python
Python定时器线程池原理详解
2020/02/26 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
css3进行截取替代js的substring
2013/09/02 HTML / CSS
俄罗斯香水和化妆品购物网站:Л’Этуаль
2018/05/10 全球购物
数据库基础的一些面试题
2012/02/25 面试题
酒店服务实习自我鉴定
2013/09/22 职场文书
八一建军节演讲稿
2014/09/10 职场文书
大学宣传委员竞选稿
2015/11/19 职场文书
服务器间如何实现文件共享
2022/05/20 Servers