#44923 [Opn]: ereg works differently in PHP 6.0 unicode.semantics=on
| From: | felipe@php.net | Date: | Tue, 06 May 2008 12:06:04 +0000 |
| Subject: | #44923 [Opn]: ereg works differently in PHP 6.0 unicode.semantics=on | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-124749@lists.php.net to get a copy of this message | ||
ID: 44923
Updated by: felipe@php.net
Reported By: tokul at users dot sourceforge dot net
Status: Open
Bug Type: *Regular Expressions
Operating System: Linux Debian Etch
PHP Version: 6CVS-2008-05-06 (snap)
New Comment:
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.
Previous Comments:
------------------------------------------------------------------------
[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