diff --git a/ChangeLog b/ChangeLog index 72e020ec6861f04d66a0a74592fa85cd51c23250..359134c9e2109c8da60aa262a48fec0113513cf1 100755 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2010-08-09 Steffen Kamper <steffen@typo3.org> + + * Fixed bug #15397: Fix special chars in class.t3lib_div.php + 2010-08-09 Christian Kuhn <lolli@schwarzbu.ch> * Follow-up to bug #15104: Fixed parse error diff --git a/t3lib/class.t3lib_div.php b/t3lib/class.t3lib_div.php index d8491e4a247169026e15001c29c09d97db074c32..d90994bdf1d20bc3448f3d6f2b4501461af9cfbc 100644 --- a/t3lib/class.t3lib_div.php +++ b/t3lib/class.t3lib_div.php @@ -1235,7 +1235,23 @@ final class t3lib_div { self::logDeprecatedFunction(); $value = strtoupper($string); - return strtr($value, 'áéúíâêûôîæøåäöü', 'ÁÉÚÍÄËÜÖÏÆØÅÄÖÜ'); + return strtr($value, array( + chr(225) => chr(193), + chr(233) => chr(201), + chr(250) => chr(218), + chr(237) => chr(205), + chr(226) => chr(196), + chr(234) => chr(203), + chr(251) => chr(220), + chr(244) => chr(214), + chr(238) => chr(207), + chr(230) => chr(198), + chr(248) => chr(216), + chr(229) => chr(197), + chr(228) => chr(196), + chr(246) => chr(214), + chr(252) => chr(220), + )); } /** @@ -1251,9 +1267,9 @@ final class t3lib_div { public static function convUmlauts($str) { self::logDeprecatedFunction(); - $pat = array ( '/ä/', '/Ä/', '/ö/', '/Ö/', '/ü/', '/Ü/', '/ß/', '/å/', '/Å/', '/ø/', '/Ø/', '/æ/', '/Æ/' ); - $repl = array ( 'ae', 'Ae', 'oe', 'Oe', 'ue', 'Ue', 'ss', 'aa', 'AA', 'oe', 'OE', 'ae', 'AE' ); - return preg_replace($pat,$repl,$str); + $pattern = array (chr(228), chr(196), chr(246), chr(214), chr(252), chr(220), chr(223), chr(229), chr(197), chr(248), chr(216), chr(230), chr(198)); + $replace = array ('ae', 'Ae', 'oe', 'Oe', 'ue', 'Ue', 'ss', 'aa', 'AA', 'oe', 'OE', 'ae', 'AE'); + return str_replace($pattern, $replace, $str); } /**