Edit report at https://bugs.php.net/bug.php?id=25953&edit=1
ID: 25953 Comment by: iam at xatory dot ru Reported by: kirill at digicol dot de Summary: mb_eregi_replace() is not case-insensitive for multibyte characters. Status: Wont fix Type: Bug Package: mbstring related Operating System: Linux Suse SuSE 8.2 PHP Version: 4.3.4RC2 Block user comment: N Private report: N New Comment: You can replace mb_eregi_replace with preg_replace with u modifier. Example (utf-8 file encoding): <?php echo preg_replace('/(Ñникод)/iu', '<b>\\1</b>', 'Юникод Ñдобен'); ?> As expected result is: <b>Юникод</b> Ñдобен Previous Comments: ------------------------------------------------------------------------ [2003-10-24 13:35:18] moriyo...@php.net As of the current regex engine used by mbstring extension, all of the cyrillic / greek / arabic characters and some alphabetical characters that are not part of ascii character set such as a-umlaut (ä) aren't handled correctly under case-insensitive mode. Probably the issue will be resolved in php5. ------------------------------------------------------------------------ [2003-10-22 10:16:53] kirill at digicol dot de Description: ------------ The function mb_eregi_replace() is not caseinsensitive for multibyte characters. This bug is in PHP 4.3.3 as well. Reproduce code: --------------- <?php mb_regex_encoding('UTF-8'); $pattern = utf8_encode('ü'); $replace = 'X'; $subject = utf8_encode('ÜBER über'); $result = mb_eregi_replace($pattern, $replace, $subject); echo utf8_decode($result) . "\n"; ?> Expected result: ---------------- XBER Xber Actual result: -------------- ÜBER Xber ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=25953&edit=1