ajax中,使用Json代替xml加快速度

来源:互联网 发布:ios电视直播软件2017 编辑:程序博客网 时间:2024/04/29 16:09

<?php

    
/*----------------------------------------------------------------------
        PHP JSON Class
        ==============
        The PHP JSON Class can be used to encode a php array or object into
        Java Script Object Notation, without the need for an additional PHP
        Extension.
        
        Normal usage is as follows:
        
            $json = new json;
            $encoded = $json->encode($var);
            echo $encoded;
                    
        Version 0.5
        Copyright Jack Sleight - www.reallyshiny.com
        This script is licensed under the:
            Creative Commons Attribution-ShareAlike 2.5 License
    ----------------------------------------------------------------------*/

    
class json
{
    
        
/*--------------------------------------------------
            Encode the variable/array/object
        --------------------------------------------------*/
    
        
function encode($input
) {
        
            
$output = $this->get(NULL, $input
);
            
            return
$output
;    
        
        }
        
        
/*--------------------------------------------------
            Get the encoded variable
        --------------------------------------------------*/
    
        
function get($key, $value, $parent = NULL
) {
                
            
$type = $this->type($key, $value
);
                
            switch (
$type
) {
            
                case
'object'
:
                    
$value = '{'.$this->loop($value, $type).'}'
;
                    break;
                case
'array'
:
                    
$value = '['.$this->loop($value, $type).']'
;
                    break;
                case
'number'
:
                    
$value = $value
;
                    break;
                case
'string'
:
                    
$value = '"'.$this->escape($value).'"'
;
                    break;
                case
'boolean'
:
                    
$value = ($value) ? 'true' : 'false'
;
                    break;
                case
'null'
:
                    
$value = 'null'
;
                    break;
            
            }
            
            if(!
is_null($key) && $parent != 'array'
)
                
$value = '"'.$key.'":'.$value
;
            
            return
$value
;
            
        }
    
        
/*--------------------------------------------------
            Check the type of the variable
        --------------------------------------------------*/
    
        
function type($key, $value
) {
        
            if(
is_object($value
)) {
                
$type = 'object'
;
            }
            elseif(
is_array($value
)) {
                if(
$this->is_assoc($value
))
                    
$type = 'object'
;
                else
                    
$type = 'array'
;                    
            }
            elseif(
is_int($value) || is_float($value
)) {
                
$type = 'number'
;
            }
            elseif(
is_string($value
)) {
                
$type = 'string'
;
            }
            elseif(
is_bool($value
)) {
                
$type = 'boolean'
;
            }
            elseif(
is_null($value
)) {
                
$type = 'null'
;
            }
            else {
                die(
$key.' is of an unsupported type.'
);
            }
            
            return
$type
;
            
        }
    
        
/*--------------------------------------------------
            Loop through the array/object
        --------------------------------------------------*/
    
        
function loop($input, $type
) {
        
            
$output = NULL
;
            
            foreach(
$input as $key => $value
) {
                
$output .= $this->get($key, $value, $type).','
;
            }
            
            
$output = trim($output, ','
);
            
            return
$output
;    
        
        }    
    
        
/*--------------------------------------------------
            Escape strings
        --------------------------------------------------*/
    
        
function escape($string
) {

            
$find = array('//',        '"',    '/',    "/b",    "/f",    "/n",    "/r",    "/t",    "/u"
);
            
$repl = array('////',    '/"',    '//',    '/b',    '/f',    '/n',    '/r',    '/t',    '/u'
);
            
            
$string = str_replace($find, $repl, $string
);

            return
$string
;
        
        }    
    
        
/*--------------------------------------------------
            Check if the array is associative
        --------------------------------------------------*/
    
        
function is_assoc($array
) {

            
krsort($array, SORT_STRING
);
            return !
is_numeric(key($array
));
            
        }
    
    }

?>

从这个站找来的,还有些相关资料,大家可以再看看
http://www.reallyshiny.com/scripts/php-json-class/

这个地址是pecl的json编译好了的dll下载,可以根据自己使用php版本来下有
http://pecl4win.php.net/ext.php/php_json.dll

具体使用办法:

$arr=array(
            "name"=>"killall","sex"=>"boy");

$str=json_encode($arr);//将数组转为json格式
echo $str;
echo "<br>";
$a=json_decode($str,false);//true返回为数组,flase返回对对象,默认为flase
echo $a->name;
?>

在客户端 str=eval("(+json+")");

原创粉丝点击