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] [email protected]
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