#47686 [NEW]: preg_quote is escaping '-' when it shouldn't
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
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