#47686 [Csd->Bgs]: preg_quote is escaping '-' when it shouldn't
| From: | scottmac@php.net | Date: | Tue, 17 Mar 2009 12:53:55 +0000 |
| Subject: | #47686 [Csd->Bgs]: preg_quote is escaping '-' when it shouldn't | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-134807@lists.php.net to get a copy of this message | ||
ID: 47686
Updated by: scottmac@php.net
Reported By: jesse dot collis at gmail dot com
-Status: Closed
+Status: Bogus
Bug Type: PCRE related
Operating System: OSX 10.5.6 / doesn't matter
PHP Version: 5.3CVS-2009-03-17 (snap)
Previous Comments:
------------------------------------------------------------------------
[2009-03-17 12:41:26] jesse dot collis at gmail dot com
From further investigation, although the change in behaviour of
preg_quote in Bug#47229 breaks certain elements in the Code Ignighter
Framework, it has more to do with the framework than a logical error in
preg_quote.
If anyone is interested, the default settings of Code Igniter 1.7.1
will
cause URI.php line 189 to fault and return a false negative. I will
alert them of this.
------------------------------------------------------------------------
[2009-03-17 11:22:19] felipe@php.net
This was due the fix for Bug#47229.
But does this breaking your code?
------------------------------------------------------------------------
[2009-03-17 04:58:38] jesse dot collis at gmail dot com
Description:
------------
In a simple test of preg_quote is showing the function is not behaving
as it does in PHP 5.2.x. preg_quote is escaping '-' (minus) characters
when it shouldn't.
Reproduce code:
---------------
Current Results
-----------------------
var_dump(preg_quote("[0-2]")); => string(8) "\[0\-2\]"
var_dump(preg_quote("0-2")); => string(4) "0\-2"
var_dump(preg_quote("a-z 0-9~%.:_\-")); => string(20) "a\-z
0\-9~%\.\:_\\\-"
Expected result:
----------------
the three lines printed above should come out the following way.
var_dump(preg_quote("[0-2]")); => string(7) "\[0-2\]"
var_dump(preg_quote("0-2")); => string(3) "0-2"
var_dump(preg_quote("a-z 0-9~%.:_\-")); => string(17) "a-z
0-9~%\.\:_\\-
"
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=47686&edit=1