PHP 开发 APP 接口总结 - JSON 结合 XML 方式封装通信接口

要求:

1.在一个类中封装多种数据通信方法(JSON,XML),并且只通过一个入口选择需要的数据通信格式

2.客户端开发工程师可以自行选择数据传输格式(GET 方式)

response.php

<?php

class Response{
    const JSON = ‘json‘;
    //封装的综合方法,默认的数据类型为json
    public static function show($code,$message = ‘‘,$data,$type = self::JSON){

        if(!is_numeric($code)){
            return ‘‘;
        }
        //供测试数组使用
        $result = array(
            ‘code‘ => $code,
            ‘message‘ => $message,
            ‘data‘ => $data
        );
        //通过get参数判断通信数据类型
        $typelist = array(‘json‘,‘xml‘,‘array‘); // array为测试使用
        if(isset($_GET[‘type‘])){
            if(in_array(strtolower($_GET[‘type‘]),$typelist)){
                $type = strtolower($_GET[‘type‘]);
            }else{
                $type = self::JSON;
            }
        }else{
            $type = self::JSON;
        }

        if($type == ‘json‘){
            self::json($code,$message = ‘‘,$data);
        }else if($type == ‘xml‘){
            self::xml($code,$message = ‘‘,$data);
        }else if($type == ‘array‘){
            var_dump($result);    //仅供测试
        }
    }

    /**
    * 按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 xml($code,$message,$data){

        if(!is_numeric($code)){
            return ‘‘;
        }

        $result = array(
            ‘code‘ => $code,
            ‘message‘ => $message,
            ‘data‘ => $data
        );

        //修改 http 头信息
        header("Content-Type:text/xml");
        //xml头信息
        $xml = "<?xml version=‘1.0‘ encoding=‘utf-8‘?>";
        //根节点开始标签
        $xml .= "<root>";

        $xml .= self::xmlToEncode($result);

        //根节点结束标签
        $xml .= "</root>";

        echo $xml;
        exit();
    }

    //解析$result至xml
    public static function xmlToEncode($data){
        $xml = $attr = "";
        foreach($data as $k=>$v){
            //如果$k是数字(data(code,message,data中的data)数据里面还含有索引数组),要进行如下判断
            if(is_numeric($k)){
                $attr = "id=‘{$k}‘";
                $k = ‘item ‘;
            }

            $xml .= "<{$k}{$attr}>";
            //如果$v是数组,则递归调用该方法
            if(is_array($v)){
                $xml .= self::xmlToEncode($v);
            }else{
                $xml .= $v;
            }
            $xml .= "</{$k}>";
        }

        return $xml;
    }
}

test.php

<?php
require ‘response.php‘;

$data = array(
    ‘id‘=>1,
    ‘name‘=>‘Mary‘,
    ‘type‘=>array(1,3,6)
);

Response::show(200,‘数据返回成功‘,$data);

测试url:

http://127.0.0.17/php/APP/test.php

http://127.0.0.17/php/APP/test.php?type=json

http://127.0.0.17/php/APP/test.php?type=xml

http://127.0.0.17/php/APP/test.php?type=array

http://127.0.0.17/php/APP/test.php?type=XML (返回 xml 数据)

http://127.0.0.17/php/APP/test.php?type=arr (返回 json 数据)

时间: 2024-08-02 02:51:20

PHP 开发 APP 接口总结 - JSON 结合 XML 方式封装通信接口的相关文章

PHP 开发 APP 接口总结 - XML 方式封装通信接口

1.PHP 生成 XML 数据 ① 拼接字符串 ② 使用系统类(DomDocument,XMLWriter,SimpleXML) 例1 使用 PHP 系统类中的 DomDocument 类: <?php $dom = new DomDocument('1.0','utf-8'); $element = $dom->createElement('test','This is a root element'); $dom->appendChild($element); echo $dom-&

PHP 开发 APP 接口总结 - JSON 方式封装通信接口

1.通信数据的标准格式 ( JSON ),包括: code:状态码(200,400等) message:提示信息(例如:数据返回成功.邮箱格式错误等) data:返回数据 2.JSON 方式封装通信接口 response.php <?php /** * 按json方式输出通信数据 * @param integer $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * return string */ class Res

PHP 开发 APP 接口--XML篇

1.PHP 生成 XML 数据 ① 拼接字符串 ② 使用系统类(DomDocument,XMLWriter,SimpleXML) 例1 使用 PHP 系统类中的 DomDocument 类: <?php $dom = new DomDocument('1.0','utf-8'); $element = $dom->createElement('test','This is a root element'); $dom->appendChild($element); echo $dom-&

php开发app接口

用interface关键字定义,示例: interface video(){ public function getVideos(); public function getCount();//这都是虚拟的方法 } 接口的实现:[接口中给的所有方法都必须在示例中实现] class movie implements video{ public function getVideo(){ //do something } public function getCount(){ //do somethi

小蚂蚁学习APP接口开发(1)—— json方式封装通信接口

前段时间,和公司的一个安卓程序员配合开发一款简单的APP,因为第一次写,时间也紧张,总感觉写的不是那么的完美,趁着这段时间好好总结一下经验. 对于APP的请求,服务器返回的数据类型一般是json和xml. xml和json的区别: 可读性方面--xml占优.因为它是有很多个节点组成的,节点的名称可以自定义. 生成数据方面--json占优.在PHP中要生成一条json数据,只需要一个内置函数就可以实现,而xml则需要拼接字符串或者实例化对象才能够实现,所以,json更为简便一些. 传输速度方面--

PHP开发APP接口(二)

这里将会调用前面博客的数据库连接单例.文件缓存类和开发APP接口(一) [php] view plain copy print? <?php // http://app.com/list.php?page-=1&pagesize=12 require_once('./response.php'); require_once('./file.php'); $file = new File(); $data = $file->cacheData('index_cron_cahce'); i

PHP开发APP接口(三)

封装通信接口数据方法:1.json方式封装数据方法2.xml方式封装数据方法3.综合数据封装方法. json方式:json_encode();该函数只接受utf-8编码的数据:iconv('原始编码','目标编码','变量'):通过此函数转换编码: xml方式php生成xml数据:1>组装字符串2>使用系统类    DomDocument<?php$dom = new DOMDocument('1.0','utf-8');$element = $dom->createElement

PHP 开发 APP 接口 --JSION篇

1.通信数据的标准格式 ( JSON ),包括: code:状态码(200,400等) message:提示信息(例如:数据返回成功.邮箱格式错误等) data:返回数据 2.JSON 方式封装通信接口 response.php <?php /** * 按json方式输出通信数据 * @param integer $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * return string */ class Res

xml方式封装数据方法

1.xml方式封装数据方法 2.demo <?php xml方式封装数据方法 /** * [xmlEncode description] * @param [type] $code [description] * @param [type] $message [description] * @param array $data [description] * @return [type] [description] */ public static function xmlEncode($cod