ID: 44923
Updated by: [email protected]
Reported By: tokul at users dot sourceforge dot net
Status: Open
-Bug Type: PCRE related
+Bug Type: Regexps related
Operating System: Linux Debian Etch
PHP Version: 6CVS-2008-05-06 (snap)
New Comment:
PCRE and ereg_* have different syntaxes. So wrapping ereg to pcre will
break most regexes.
Previous Comments:
------------------------------------------------------------------------
[2008-08-12 16:38:01] [email protected]
For unicode aware regexps use PCRE. The old ereg stuff should be
provided as wrapper functions which uses PCRE underneath though.
------------------------------------------------------------------------
[2008-05-06 12:06:03] [email protected]
This is expected, the code isn't prepared to works with unicode
strings.
Actually it only use REG_EXTENDED with binary strings, and convert the
unicode string to normal string.
------------------------------------------------------------------------
[2008-05-06 03:59:56] tokul at users dot sourceforge dot net
Description:
------------
expressions that work in older versions fail on PHP6
unicode.semantics=on
Compared 5.2-dev, 5.3-dev and 6.0-dev snapshots
Reproduce code:
---------------
$line = "* 469 EXISTS\r\n";
if (ereg("[^ ]+ +([^ ]+) +EXISTS", $line, $match)) {
var_dump($match[1]);
} else {
var_dump(false);
}
$line = "* 469 FETCH (UID 508 BODY[1]<0> {154}\r\n";
if (ereg('\\{([^\\}]*)\\}', $line, $match)) {
var_dump($match[1]);
} else {
var_dump(false);
}
Expected result:
----------------
string(3) "469"
string(3) "154"
Actual result:
--------------
bool(false)
Warning: ereg(): REG_BADRPT in
/home/tomas/testbeds/test/php60/bin/ereg.php on line 10
bool(false)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=44923&edit=1
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.