#47686 [NEW]: preg_quote is escaping '-' when it shouldn't

2009-03-16 Thread jesse dot collis at gmail dot com
From: jesse dot collis at gmail dot com
Operating system: OSX 10.5.6 / doesn't matter
PHP version:  5.3CVS-2009-03-17 (snap)
PHP Bug Type: PCRE related
Bug description:  preg_quote is escaping '-' when it shouldn't

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 bug report at http://bugs.php.net/?id=47686&edit=1
-- 
Try a CVS snapshot (PHP 5.2):
http://bugs.php.net/fix.php?id=47686&r=trysnapshot52
Try a CVS snapshot (PHP 5.3):
http://bugs.php.net/fix.php?id=47686&r=trysnapshot53
Try a CVS snapshot (PHP 6.0):
http://bugs.php.net/fix.php?id=47686&r=trysnapshot60
Fixed in CVS:
http://bugs.php.net/fix.php?id=47686&r=fixedcvs
Fixed in CVS and need be documented: 
http://bugs.php.net/fix.php?id=47686&r=needdocs
Fixed in release:
http://bugs.php.net/fix.php?id=47686&r=alreadyfixed
Need backtrace:  
http://bugs.php.net/fix.php?id=47686&r=needtrace
Need Reproduce Script:   
http://bugs.php.net/fix.php?id=47686&r=needscript
Try newer version:   
http://bugs.php.net/fix.php?id=47686&r=oldversion
Not developer issue: 
http://bugs.php.net/fix.php?id=47686&r=support
Expected behavior:   
http://bugs.php.net/fix.php?id=47686&r=notwrong
Not enough info: 
http://bugs.php.net/fix.php?id=47686&r=notenoughinfo
Submitted twice: 
http://bugs.php.net/fix.php?id=47686&r=submittedtwice
register_globals:
http://bugs.php.net/fix.php?id=47686&r=globals
PHP 4 support discontinued:  http://bugs.php.net/fix.php?id=47686&r=php4
Daylight Savings:http://bugs.php.net/fix.php?id=47686&r=dst
IIS Stability:   
http://bugs.php.net/fix.php?id=47686&r=isapi
Install GNU Sed: 
http://bugs.php.net/fix.php?id=47686&r=gnused
Floating point limitations:  
http://bugs.php.net/fix.php?id=47686&r=float
No Zend Extensions:  
http://bugs.php.net/fix.php?id=47686&r=nozend
MySQL Configuration Error:   
http://bugs.php.net/fix.php?id=47686&r=mysqlcfg



#47686 [Fbk->Csd]: preg_quote is escaping '-' when it shouldn't

2009-03-17 Thread jesse dot collis at gmail dot com
 ID:   47686
 User updated by:  jesse dot collis at gmail dot com
 Reported By:  jesse dot collis at gmail dot com
-Status:   Feedback
+Status:   Closed
 Bug Type: PCRE related
 Operating System: OSX 10.5.6 / doesn't matter
 PHP Version:  5.3CVS-2009-03-17 (snap)
 New Comment:

>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.


Previous Comments:


[2009-03-17 11:22:19] fel...@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