From: Lionel Martin Date: Mon, 20 May 2013 17:00:28 +0000 (+0200) Subject: Added json_encode implementation for php<5.2 X-Git-Tag: v0.0.42beta~14^2 X-Git-Url: https://git.immae.eu/?a=commitdiff_plain;h=3385af123f6b4dfc59aeaa69f180381307b64368;p=github%2Fshaarli%2FShaarli.git Added json_encode implementation for php<5.2 --- 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 @@ if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=d 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 +?>