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下通过IP获取地理位置的代码(小偷程序)
Jun 09 PHP
9段PHP实用功能的代码推荐
Oct 14 PHP
php中动态变量用法实例
Jun 10 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
Dec 22 PHP
浅谈PHP中关于foreach使用引用变量的坑
Nov 14 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
Aug 10 PHP
详解PHP中的 input属性(隐藏 只读 限制)
Aug 14 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
Mar 30 PHP
PHP随机数函数rand()与mt_rand()的讲解
Mar 25 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
May 06 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 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程序中的常见漏洞进行攻击
2006/10/09 PHP
深入了解php4(1)--回到未来
2006/10/09 PHP
php download.php实现代码 跳转到下载文件(response.redirect)
2009/08/26 PHP
常见的PHP五种设计模式小结
2011/03/23 PHP
php学习之变量的使用
2011/05/29 PHP
解析php中die(),exit(),return的区别
2013/06/20 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
谈谈PHP连接Access数据库的注意事项
2016/08/12 PHP
PHP实现链表的定义与反转功能示例
2018/06/09 PHP
浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
2019/10/12 PHP
List the Codec Files on a Computer
2007/06/18 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
CSS(js)限制页面显示的文本字符长度
2012/12/27 Javascript
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
Jqgrid表格随窗口大小改变而改变的简单实例
2013/12/28 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
高性能JavaScript DOM编程(1)
2015/08/11 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
python保存字符串到文件的方法
2015/07/01 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
聊聊python中的异常嵌套
2020/09/01 Python
Python collections模块的使用方法
2020/10/09 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
销售类个人求职信范文
2013/09/25 职场文书
项目经理的岗位职责
2013/11/23 职场文书
市场安全管理制度
2014/01/26 职场文书
汽车运用工程专业求职信
2014/06/18 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python
详解TypeScript的基础类型
2022/02/18 Javascript