ID: 43995 Updated by: [EMAIL PROTECTED] Reported By: josmessa at uk dot ibm dot com -Status: Open +Status: Assigned Bug Type: mbstring related Operating System: Windows XP SP2 PHP Version: 5.2CVS-2008-01-31 (snap) Assigned To: hirokawa
Previous Comments: ------------------------------------------------------------------------ [2008-01-31 17:05:20] [EMAIL PROTECTED] assign to extension maintainer ------------------------------------------------------------------------ [2008-01-31 15:20:09] josmessa at uk dot ibm dot com Description: ------------ When the $regs argument is provided, mb_ereg will return the length of the matched string. The integer returned though is the byte length of the string instead of the character length, which seems illogical for a multibyte string function. Reproduce code: --------------- <?php mb_regex_encoding('utf-8'); $string_mb = base64_decode('5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII='); $regex = '^.*?[[:blank:]]?[[:punct:][:digit:]]+\.?$'; echo "\nMultibyte String without \$regs arg:\t"; var_dump(mb_ereg($regex, $string_mb)); echo "Multubyte String with \$regs arg:\t"; var_dump(mb_ereg($regex, $string_mb, $regs_mb)); echo "Character length of matched string:\t"; var_dump(mb_strlen($regs_mb[0], 'utf-8')); ?> Expected result: ---------------- Multibyte String without $regs arg: int(1) Multubyte String with $regs arg: int(21) Character length of matched string: int(21) Actual result: -------------- Multibyte String without $regs arg: int(1) Multubyte String with $regs arg: int(53) Character length of matched string: int(21) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=43995&edit=1