if(!function_exists('json_encode')) {
function json_encode($arg) {
$returnValue = '';
$c = '';
$i = '';
$l = '';
$s = '';
$v = '';
$numeric = true;
switch (gettype($arg)) {
case 'array':
foreach ($arg AS $i => $v) {
if (!is_numeric($i)) {
$numeric = false;
break;
}
}
if ($numeric) {
foreach ($arg AS $i => $v) {
if (strlen($s) > 0) {
$s .= ',';
}
$s .= json_encode($arg[$i]);
}
$returnValue = '[' . $s . ']';
} else {
foreach ($arg AS $i => $v) {
if (strlen($s) > 0) {
$s .= ',';
}
$s .= json_encode($i) . ':' . json_encode($arg[$i]);
}
$returnValue = '{' . $s . '}';
}
break;
case 'object':
foreach (get_object_vars($arg) AS $i => $v) {
$v = json_encode($v);
if (strlen($s) > 0) {
$s .= ',';
}
$s .= json_encode($i) . ':' . $v;
}
$returnValue = '{' . $s . '}';
break;
case 'integer':
case 'double':
$returnValue = is_numeric($arg) ? (string) $arg : 'null';
break;
case 'string':
$returnValue = '"' . strtr($arg, array(
" " => '\r', " " => '\n', " " => '\t', "" => '\b',
"f" => '\f', '\' => '\\', '"' => '"',
"x00" => 'u0000', "x01" => 'u0001', "x02" => 'u0002', "x03" => 'u0003',
"x04" => 'u0004', "x05" => 'u0005', "x06" => 'u0006', "x07" => 'u0007',
"x08" => '', "x0b" => 'u000b', "x0c" => 'f', "x0e" => 'u000e',
"x0f" => 'u000f', "x10" => 'u0010', "x11" => 'u0011', "x12" => 'u0012',
"x13" => 'u0013', "x14" => 'u0014', "x15" => 'u0015', "x16" => 'u0016',
"x17" => 'u0017', "x18" => 'u0018', "x19" => 'u0019', "x1a" => 'u001a',
"x1b" => 'u001b', "x1c" => 'u001c', "x1d" => 'u001d', "x1e" => 'u001e',
"x1f" => 'u001f'
)) . '"';
break;
case 'boolean':
$returnValue = $arg?'true':'false';
break;
default:
$returnValue = 'null';
}
return $returnValue;
}
}