[Mapbender-commits] r4659 - in trunk/mapbender/http: classes php

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Fri Sep 18 07:03:08 EDT 2009


Author: tbaschetti
Date: 2009-09-18 07:03:07 -0400 (Fri, 18 Sep 2009)
New Revision: 4659

Modified:
   trunk/mapbender/http/classes/class_json.php
   trunk/mapbender/http/php/mod_addWMSfromfilteredList_server.php
Log:
added json->save_encode (converting to UTF-8 before encoding)
fixes http://trac.osgeo.org/mapbender/ticket/171


Modified: trunk/mapbender/http/classes/class_json.php
===================================================================
--- trunk/mapbender/http/classes/class_json.php	2009-09-18 10:57:29 UTC (rev 4658)
+++ trunk/mapbender/http/classes/class_json.php	2009-09-18 11:03:07 UTC (rev 4659)
@@ -60,6 +60,39 @@
 	}
 	
 	/**
+        * Converts incoming object to UTF-8 for json_encode
+        *
+        */
+
+        private function json_fix_charset($var)
+        {
+            if (is_array($var)) {
+                $new = array();
+                foreach ($var as $k => $v) {
+                    $new[$this->json_fix_charset($k)] = $this->json_fix_charset($v);
+                }
+                $var = $new;
+            } elseif (is_object($var)) {
+                $vars = get_object_vars(get_class($var));
+                foreach ($vars as $m => $v) {
+                    $var->$m = $this->json_fix_charset($v);
+                }
+            } elseif (is_string($var)) {
+                $var = utf8_encode($var);
+            }
+            return $var;
+        }
+
+        /**
+        * savely encode object to JSON,
+        * converting to UTF-8
+        */
+        public function save_encode($anObject){
+                $e = new mb_notice("converting to UTF-8 before using native JSON");
+                return $this->encode($this->json_fix_charset($anObject));
+        }
+
+	/**
 	 * Encodes an object to JSON
 	 */
 	public function encode($anObject) {

Modified: trunk/mapbender/http/php/mod_addWMSfromfilteredList_server.php
===================================================================
--- trunk/mapbender/http/php/mod_addWMSfromfilteredList_server.php	2009-09-18 10:57:29 UTC (rev 4658)
+++ trunk/mapbender/http/php/mod_addWMSfromfilteredList_server.php	2009-09-18 11:03:07 UTC (rev 4659)
@@ -132,6 +132,6 @@
 }
 
 $json = new Mapbender_JSON();
-$output = $json->encode($resultObj);
+$output = $json->save_encode($resultObj);
 echo $output;
-?>
\ No newline at end of file
+?>



More information about the Mapbender_commits mailing list