From daf7a5ea5506df385670655fb719d636beec4a7b Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Thu, 4 Mar 2010 11:37:17 -0700 Subject: [PATCH] Added Horde_Util::convertToUtf8(). --- framework/Util/lib/Horde/Util.php | 26 ++++++++++++++++++++++++++ framework/Util/package.xml | 3 ++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/framework/Util/lib/Horde/Util.php b/framework/Util/lib/Horde/Util.php index 6b07d5441..b8ab56deb 100644 --- a/framework/Util/lib/Horde/Util.php +++ b/framework/Util/lib/Horde/Util.php @@ -905,4 +905,30 @@ class Horde_Util return base64_decode($data); } + /** + * Convert a variable to UTF-8. Recursively handles inner variables. + * + * @param mixed $in The variable to convert. + * + * @return mixed The converted variable. + */ + static public function convertToUtf8($in) + { + if (is_string($in)) { + $in = utf8_encode($in); + } elseif (is_array($in)) { + reset($in); + while (list($key, $val) = each($in)) { + $in[$key] = self::convertToUtf8($in[$key]); + } + } elseif (is_object($in)) { + $in = self::cloneObject($in); + foreach (get_object_vars($in) as $key => $val) { + $in->$key = self::convertToUtf8($in->$key); + } + } + + return $in; + } + } diff --git a/framework/Util/package.xml b/framework/Util/package.xml index 8afed384d..f2b11b6ba 100644 --- a/framework/Util/package.xml +++ b/framework/Util/package.xml @@ -29,7 +29,8 @@ http://pear.php.net/dtd/package-2.0.xsd"> beta LGPL - * Added Horde_Util::abbreviate(). + * Added Horde_Util::convertToUtf8(). + * Added Horde_Util::abbreviate(). * Removed Horde_Array::combine() and Horde_Util::hmac(). * Initial Horde 4 package. -- 2.11.0