X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=functions%2Fencode%2Futf_8.php;h=b1dcb14f79459abec99e709e14fdba866f16a109;hp=5c64ac39c7b383bda09e48e1ec3373a67b428ee5;hb=6c4e2e9b8fdeac2405d55a7cc00f580f0b6c87c3;hpb=4b4abf93a9624311afef0c385023724ee46a2b60 diff --git a/functions/encode/utf_8.php b/functions/encode/utf_8.php index 5c64ac39..b1dcb14f 100644 --- a/functions/encode/utf_8.php +++ b/functions/encode/utf_8.php @@ -10,7 +10,7 @@ * Original code is taken from www.php.net manual comments * Original author: ronen at greyzone dot com * - * @copyright © 2004-2005 The SquirrelMail Project Team + * @copyright 2004-2012 The SquirrelMail Project Team * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id$ * @package squirrelmail @@ -26,8 +26,7 @@ function charset_encode_utf_8 ($string) { // don't run encoding function, if there is no encoded characters if (! preg_match("'&#[0-9]+;'",$string) ) return $string; - $string=preg_replace("/&#([0-9]+);/e","unicodetoutf8('\\1')",$string); - // $string=preg_replace("/&#[xX]([0-9A-F]+);/e","unicodetoutf8(hexdec('\\1'))",$string); + $string=preg_replace_callback("/&#([0-9]+);/",'unicodetoutf8',$string); return $string; } @@ -40,10 +39,11 @@ function charset_encode_utf_8 ($string) { * Don't use it or make sure, that functions/encode/utf_8.php is * included. * - * @param int $var decimal unicode value + * @param array $matches array with first element a decimal unicode value * @return string utf8 character */ -function unicodetoutf8($var) { +function unicodetoutf8($matches) { + $var = $matches[1]; if ($var < 128) { $ret = chr ($var); @@ -118,4 +118,3 @@ function unicodetoutf8($var) { } return $ret; } -?> \ No newline at end of file