ID:               44923
 Updated by:       j...@php.net
 Reported By:      tokul at users dot sourceforge dot net
-Status:           Open
+Status:           Wont fix
 Bug Type:         Regexps related
 Operating System: Linux Debian Etch
 PHP Version:      6CVS-2008-05-06 (snap)


Previous Comments:
------------------------------------------------------------------------

[2008-08-14 14:42:33] nlop...@php.net

PCRE and ereg_* have different syntaxes. So wrapping ereg to pcre will
break most regexes.

------------------------------------------------------------------------

[2008-08-12 16:38:01] j...@php.net

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] fel...@php.net

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

Reply via email to