From e94a9fb5e4b6a2bc07e0bb4cf8ea35fc70c4bbf0 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Thu, 10 May 2012 12:31:27 -0400
Subject: [PATCH] Merged revisions 3049-3051,3053-3054,3058,3070,3074-3077,3082,3086-3088,3091-3092,3094-3095 from stable branch.
---
interface/lib/classes/functions.inc.php | 40 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php
index b744e35..2fe7191 100644
--- a/interface/lib/classes/functions.inc.php
+++ b/interface/lib/classes/functions.inc.php
@@ -109,6 +109,46 @@
return $url;
}
+ function json_encode($data) {
+ if(!function_exists('json_encode')){
+ 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[] = $this->json_encode($value);
+ $output_associative[] = $this->json_encode($key) . ':' . $this->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
+ }
+ } else {
+ return json_encode($data);
+ }
+ }
+
+
}
--
Gitblit v1.9.1