Welcome 微信登录

首页 / 网页编程 / PHP / PHP实现返回JSON和XML的类分享

代码很简洁,功能也很简单实用,这里就不多废话了,直接奉上代码:
复制代码 代码如下:
<?php
    class Reponse{
        //private $result = array("code"=null,"message"=null,"data"=>null);
        /**
         * @desc 返回JSON格式
         * @param int $code
         * @param string $message
         * @param array  $data
         * return string
         */
        public static function json($code,$message = null,$data = array()){
            if(!is_numeric($code)){
                return false;
            }
            $result = array(
                "code"=>$code,
                "message"=>$message,
                "data"=>$data
            );
            return json_encode($result);
            exit;
        }
        /**
         * @desc 返回xml格式数据
         * @parma int $code 状态码
         * @param string $message 提示
         * @param array $data 数据
         * return string
         */
         public static function xml($code,$message = "",$data = array()){
            if(!is_numeric($code)){
                return false;
            }
            $result = array(
                "code"=>$code,
                "message"=>$message,
                "data"=>$data
            );
            $xml = "";
            $xml .= "<?xml version="1.0" encoding="UTF-8"?> ";
            $xml .= "<root> ";
            $xml .= self::xmlEncode($result);
            $xml .= "</root>";
            header("Content-Type:text/xml");
            echo $xml;
         }
         public static function xmlEncode($result){
            $xml = $attr ="";
            foreach($result as $key=>$val){
                if(is_numeric($key)){
                    $attr = "id="{$key}"";
                    $key = "item{$key}";
                }
                $xml .= "<{$key} {$attr}>";
                $xml .= is_array($val) ? self::xmlEncode($val) : $val;
                $xml .= "</{$key}> ";
            }
            return $xml;
         }
    }
    $data = array(
        "id"=>1,
        "age"=>20,
        "username"=>"tim",
        "others"=>array(1,2,3),
    );
    Reponse::xml(200,"success",$data);
    Reponse::json(200,"success",$data);

小伙伴们可以直接拿去使用,使用方法在代码的最下方:)