From 3385af123f6b4dfc59aeaa69f180381307b64368 Mon Sep 17 00:00:00 2001 From: Lionel Martin Date: Mon, 20 May 2013 19:00:28 +0200 Subject: [PATCH] Added json_encode implementation for php<5.2 --- index.php | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/index.php b/index.php index 1d13e55c..eaa7c532 100644 --- a/index.php +++ b/index.php @@ -2122,7 +2122,42 @@ function isTZvalid($continent,$city) } return false; } - +if (!function_exists('json_encode')) { + function json_encode($data) { + switch ($type = gettype($data)) { + case 'NULL': + return 'null'; + case 'boolean': + return ($data ? 'true' : 'false'); + case 'integer': + case 'double': + case 'float': + return $data; + case 'string': + return '"' . addslashes($data) . '"'; + case 'object': + $data = get_object_vars($data); + case 'array': + $output_index_count = 0; + $output_indexed = array(); + $output_associative = array(); + foreach ($data as $key => $value) { + $output_indexed[] = json_encode($value); + $output_associative[] = json_encode($key) . ':' . json_encode($value); + if ($output_index_count !== NULL && $output_index_count++ !== $key) { + $output_index_count = NULL; + } + } + if ($output_index_count !== NULL) { + return '[' . implode(',', $output_indexed) . ']'; + } else { + return '{' . implode(',', $output_associative) . '}'; + } + default: + return ''; // Not supported + } + } +} // Webservices (for use with jQuery/jQueryUI) // eg. index.php?ws=tags&term=minecr @@ -2419,4 +2454,4 @@ function invalidateCaches() if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'ws=')) { processWS(); exit; } // Webservices (for jQuery/jQueryUI) if (!isset($_SESSION['LINKS_PER_PAGE'])) $_SESSION['LINKS_PER_PAGE']=$GLOBALS['config']['LINKS_PER_PAGE']; renderPage(); -?> \ No newline at end of file +?>