/home/mjc1/public_html/lib/json.lib.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
if (!defined('_GNUBOARD_')) exit;

// http://tinsology.net/2011/04/php-json_encode-and-json_decode-alternatives/

if(!function_exists('json_encode'))
{
    function 
json_encode($a=false)
    {
        
// Some basic debugging to ensure we have something returned
        
if (is_null($a)) return 'null';
        if (
$a === false) return 'false';
        if (
$a === true) return 'true';
        if (
is_scalar($a))
        {
            if (
is_float($a))
            {
                
// Always use '.' for floats.
                
return floatval(str_replace(',''.'strval($a)));
            }
            if (
is_string($a))
            {
                static 
$jsonReplaces = array(array('\\''/'"\n""\t""\r""\b""\f"'"'), array('\\\\''\\/''\\n''\\t''\\r''\\b''\\f''\"'));
                return 
'"' str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"';
            }
            else
                return 
$a;
        }
        
$isList true;
        for (
$i 0reset($a); true$i++) {
            if (
key($a) !== $i)
            {
                
$isList false;
                break;
            }
        }
        
$result = array();
        if (
$isList)
        {
            foreach (
$a as $v$result[] = json_encode($v);
            return 
'[' join(','$result) . ']';
        }
        else
        {
            foreach (
$a as $k => $v$result[] = json_encode($k).':'.json_encode($v);
            return 
'{' join(','$result) . '}';
        }
    }
}

if(!
function_exists('json_decode'))
{
    function 
json_decode($json)
    {
        
$comment false;
        
$out '$x=';
        for (
$i=0$i<strlen($json); $i++)
        {
            if (!
$comment)
            {
                if ((
$json[$i] == '{') || ($json[$i] == '['))
                    
$out .= ' array(';
                else if ((
$json[$i] == '}') || ($json[$i] == ']'))
                    
$out .= ')';
                else if (
$json[$i] == ':')
                    
$out .= '=>';
                else
                    
$out .= $json[$i];
            }
            else
                
$out .= $json[$i];
            if (
$json[$i] == '"' && $json[($i-1)]!="\\")
                
$comment = !$comment;
        }
        eval(
$out ';');
        return 
$x;
    }
}
?>