php封装一个接口类

  1. <?php
    Class Response
    {
    //返回数据
    public static function show($code,$message='',$data='',$type = 'json',$callback='')
    {
    if($type=='json')
    {
    echo self::jsonEncode($code,$message,$data);
    }elseif($type == 'xml')
    {
    echo self::xmlEncode($code,$message,$data);
    }elseif($type == 'jsonp')
    {
    echo $callback.'('.self::jsonEncode($code,$message,$data).')';
    }

    }

    //json接口
    public static function jsonEncode($code,$message='',$data='')
    {
    if(!is_numeric($code))
    {
    return '';
    }

    $result = array(
    'code' => $code,
    'message' => $message,
    'data' => $data,
    );
    header("Content-type:text/json;chaset=utf-8");
    return json_encode($result);
    }
    //xml接口
    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;chaset=utf-8");
    $xml = "<?xml version='1.0' encoding='utf-8' ?> ";
    $xml .= "<root> ";
    $xml .= self::xmlToEncode($result);
    $xml .= "</root> ";

    return $xml;

    }

    //xml内容循环
    public static function xmlToEncode($data)
    {
    if(empty($data))
    {
    return '';
    }
    $xml = $attr = '';
    foreach ($data as $key => $value)
    {
    if(is_numeric($key))
    {
    $attr = "id='{$key}'";
    $key = "item";
    }
    $xml .= "<{$key} {$attr}>";
    $xml .= is_array($value) ? self::xmlToEncode($value) : $value ;
    $xml .= "</{$key}> ";
    }

    return $xml;
    }
    }


    //二维数据
    $type = isset($_GET['type'])? $_GET['type'] : 'json';

    $callback = isset($_GET['callback'])? $_GET['callback'] : '';


    $arr = array(
    'id'=>1,
    'name'=>'jia',
    'type'=>array(1,2,3)
    );

    Response::show(200,'数据返回成功',$arr,$type,$callback);