#43994 [Fbk]: mb_ereg 'successfully' matching incorrectly
| From: | jmessa@php.net | Date: | Mon, 18 Feb 2008 14:19:49 +0000 |
| Subject: | #43994 [Fbk]: mb_ereg 'successfully' matching incorrectly | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-122408@lists.php.net to get a copy of this message | ||
ID: 43994
Updated by: jmessa@php.net
-Reported By: josmessa at uk dot ibm dot com
+Reported By: jmessa@php.net
Status: Feedback
Bug Type: mbstring related
Operating System: Windows XP SP2
PHP Version: 5.2CVS-2008-01-31 (snap)
Assigned To: hirokawa
New Comment:
I've run the above example on the latest 5.2 and 5.3 snapshots and am
getting error messages warning about empty patterns similar to that in
ereg() which is great. Thanks for making the change!
Previous Comments:
------------------------------------------------------------------------
[2008-02-16 11:46:16] hirokawa@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5.3-latest.tar.gz
For Windows (zip):
http://snaps.php.net/win32/php5.3-win32-latest.zip
For Windows (installer):
http://snaps.php.net/win32/php5.3-win32-installer-latest.msi
------------------------------------------------------------------------
[2008-01-31 17:06:05] nicholsr@php.net
Assign to extension maintainer
------------------------------------------------------------------------
[2008-01-31 15:04:31] jmessa@php.net
Description:
------------
When mb_ereg is passed certain data types as the $pattern argument it
will return int(1), i.e. a successful match, when in fact it has not
matched. This is shown by setting the $regs argument and looking at the
returned array which only contains one element which is bool(false).
Reproduce code:
---------------
<?php
$unset_var = 10;
unset ($unset_var);
$inputs = array(NULL, null, false, FALSE, "", '', @$undefined_var,
@$unset_var);
$iterator = 1;
foreach($inputs as $input) {
if(@is_array($mb_regs)){
$mb_regs = '';
}
echo "\n-- Iteration $iterator --\n";
echo "Without \$regs arg:\n";
var_dump( mb_ereg($input, 'hello, world') );
echo "With \$regs arg:\n";
var_dump(mb_ereg($input, 'hello, world', $mb_regs));
var_dump($mb_regs);
$iterator++;
};
?>
Expected result:
----------------
http://pastebin.com/f5f5c20ff
Actual result:
--------------
http://pastebin.com/f3f966bd0
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=43994&edit=1