美高梅开户-美高梅官方网站开户

您的位置:美高梅开户 > 美高梅官方网站开户 > PHP实现返回JSON和XML的类分享,单例模式链接数据

PHP实现返回JSON和XML的类分享,单例模式链接数据

发布时间:2019-08-09 19:13编辑:美高梅官方网站开户浏览(108)

    代码很简洁,功能也很简单实用,这里就不多废话了,直接奉上代码:

    //db.php

    复制代码 代码如下:


    <?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'?>n";
                $xml .= "<root>n";
                $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}>n";
                }
                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);

    /**

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

    * 单例链接数据库

    您可能感兴趣的文章:

    • PHP生成json和xml类型接口数据格式
    • php json与xml序列化/反序列化
    • php 备份数据库代码(生成word,excel,json,xml,sql)
    • php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
    • PHP中simplexml_load_string函数使用说明
    • php实现将数组转换为XML的方法
    • PHP操作XML作为数据库的类
    • PHP JSON 数据解析代码
    • ThinkPHP中使用ajax接收json数据的方法
    • php中JSON的使用与转换
    • php实现xml与json之间的相互转换功能实例

    * */

    classDb {

    static private$_instance;

    static private$_connectSource;

    private$_dbConfig=array(

    'host'=>'127.0.0.1',

    'user'=>'root',

    'password'=>'',

    'database'=>'video',

    );

    private function__construct() {

    }

    static public functiongetInstance() {

    if(!(self::$_instanceinstanceof self)) {

    self::$_instance=new self();

    }

    return self::$_instance;

    }

    public functionconnect() {

    if(!self::$_connectSource) {

    self::$_connectSource= @mysql_connect($this->_dbConfig['host'],$this->_dbConfig['user'],$this->_dbConfig['password']);

    if(!self::$_connectSource) {

    throw newException('mysql connect error '. mysql_error());

    //die('mysql connect error' . mysql_error());

    }

    mysql_select_db($this->_dbConfig['database'],self::$_connectSource);

    mysql_query("set names UTF8",self::$_connectSource);

    }

    return self::$_connectSource;

    }

    }

    //response.php


    classResponse {

    constJSON="json";

    /**

    * 按综合方式输出通信数据

    *@paraminteger $code 状态码

    *@paramstring $message 提示信息

    *@paramarray $data 数据

    *@paramstring $type 数据类型

    * return string

    */

    public static functionshow($code,$message='',$data=array(),$type=self::JSON) {

    if(!is_numeric($code)) {

    return'';

    }

    if(in_array($_GET['format'],array('json','xml','jsonp'))){

    $type='json';

    }

    //    $type = isset($_GET['format']) ? $_GET['format'] : self::JSON;

    $result=array(

    'code'=>$code,

    'message'=>$message,

    'data'=>$data,

    );

    if($type=='json') {

    self::json($code,$message,$data);

    exit;

    }elseif($type=='array') {

    var_dump($result);

    }elseif($type=='xml') {

    self::xmlEncode($code,$message,$data);

    exit;

    }else{

    //TODO

    }

    }

    /**

    * 按json方式输出通信数据

    *@paraminteger $code 状态码

    *@paramstring $message 提示信息

    *@paramarray $data 数据

    * return string

    */

    public static functionjson($code,$message='',$data=array()) {

    if(!is_numeric($code)) {

    return'';

    }

    $result=array(

    'code'=>$code,

    'message'=>$message,

    'data'=>$data

    );

    echojson_encode($result);

    exit;

    }

    /**

    * 按xml方式输出通信数据

    *@paraminteger $code 状态码

    *@paramstring $message 提示信息

    *@paramarray $data 数据

    * return string

    */

    public static functionxmlEncode($code,$message,$data=array()) {

    if(!is_numeric($code)) {

    return'';

    }

    $result=array(

    'code'=>$code,

    'message'=>$message,

    'data'=>$data,

    );

    header("Content-Type:text/xml");

    $xml="n";

    $xml.="n";

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

    $xml.="";

    echo$xml;

    }

    /**

    * 转换成xml数据返回

    * */

    public static functionxmlToEncode($data) {

    $xml=$attr="";

    foreach($dataas$key=>$value) {

    if(is_numeric($key)) {

    $attr=" id='{$key}'";

    $key="item";

    }

    $xml.="<{$key}{$attr}>";

    $xml.= is_array($value) ?self::xmlToEncode($value) :$value;

    $xml.="n";

    }

    return$xml;

    }

    }

    //list.php


    //

    本文由美高梅开户发布于美高梅官方网站开户,转载请注明出处:PHP实现返回JSON和XML的类分享,单例模式链接数据

    关键词: 美高梅开户