[fusion-commits] r1911 - trunk/common/php

svn_fusion at osgeo.org svn_fusion at osgeo.org
Thu Sep 24 15:09:12 EDT 2009


Author: pagameba
Date: 2009-09-24 15:09:10 -0400 (Thu, 24 Sep 2009)
New Revision: 1911

Modified:
   trunk/common/php/Utilities.php
Log:
Closes #81.  Modify var2json to always utf8 encode json strings.

Modified: trunk/common/php/Utilities.php
===================================================================
--- trunk/common/php/Utilities.php	2009-09-24 18:46:45 UTC (rev 1910)
+++ trunk/common/php/Utilities.php	2009-09-24 19:09:10 UTC (rev 1911)
@@ -26,35 +26,40 @@
 
 /* recursively convert a variable to its json representation */
 function var2json($var) {
-    $result = "";
-    if (is_object($var)) {
-        $result .= "{";
-        $sep = "";
-        foreach($var as $key => $val) {
-            $result .= $sep.'"'.$key.'":'.var2json($val);
-            $sep = ",";
-        }
-        $result .= "}";
-    } else if (is_array($var)) {
-        $result .= "[";
-        $sep = "";
-        for($i=0; $i<count($var); $i++) {
-            $result .= $sep.var2json($var[$i]);
-            $sep = ",";
-        }
-        $result .= "]";
-    } else if (is_string($var)) {
-        //$tmpStr = str_replace("'", "\'", $var);
-        $tmpStr = str_replace('"', '\"', $var);
-        $result = '"'.str_replace("\n", '\n', $tmpStr).'"';
-    } else if (is_bool($var)) {
-        $result = $var ? 'true' : 'false';
-    } else if (is_null($var)) {
-        $result = 'null';
-    }else {
-        $result = $var;
+    if (function_exists('json_encode')) {
+        $result json_encode($var);
+    } else {
+        $result = "";
+        if (is_object($var)) {
+            $result .= "{";
+            $sep = "";
+            foreach($var as $key => $val) {
+                $result .= $sep.'"'.$key.'":'.var2json($val);
+                $sep = ",";
+            }
+            $result .= "}";
+        } else if (is_array($var)) {
+            $result .= "[";
+            $sep = "";
+            for($i=0; $i<count($var); $i++) {
+                $result .= $sep.var2json($var[$i]);
+                $sep = ",";
+            }
+            $result .= "]";
+        } else if (is_string($var)) {
+            //$tmpStr = str_replace("'", "\'", $var);
+            $tmpStr = str_replace('"', '\"', $var);
+            $result = '"'.str_replace("\n", '\n', $tmpStr).'"';
+        } else if (is_bool($var)) {
+            $result = $var ? 'true' : 'false';
+        } else if (is_null($var)) {
+            $result = 'null';
+        } else {
+            $result = $var;
+        }      
     }
-    return $result;
+
+    return utf8_encode($result);
 }
 
 function xml2json($domElement) {



More information about the fusion-commits mailing list