2022-09-17 20:50:50 +09:00
|
|
|
<?php
|
2024-09-19 20:57:39 +09:00
|
|
|
if (!defined('_GNUBOARD_'))
|
|
|
|
|
exit;
|
2022-09-17 20:50:50 +09:00
|
|
|
|
|
|
|
|
// http://tinsology.net/2011/04/php-json_encode-and-json_decode-alternatives/
|
|
|
|
|
|
2024-09-19 20:57:39 +09:00
|
|
|
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 = 0, reset($a); true; $i++) {
|
|
|
|
|
if (key($a) !== $i) {
|
|
|
|
|
$isList = false;
|
|
|
|
|
break;
|
|
|
|
|
}
|
2022-09-17 20:50:50 +09:00
|
|
|
}
|
2024-09-19 20:57:39 +09:00
|
|
|
$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) . '}';
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-09-17 20:50:50 +09:00
|
|
|
}
|
|
|
|
|
|
2024-09-19 20:57:39 +09:00
|
|
|
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;
|
2022-09-17 20:50:50 +09:00
|
|
|
}
|
2024-09-19 20:57:39 +09:00
|
|
|
eval ($out . ';');
|
|
|
|
|
return $x;
|
|
|
|
|
}
|
2022-09-17 20:50:50 +09:00
|
|
|
}
|