ID: 44876
User updated by: c dot onogol at gmail dot com
Reported By: c dot onogol at gmail dot com
Status: Wont fix
Bug Type: Scripting Engine problem
Operating System: Windows NT
PHP Version: 5.2.5
New Comment:
According to the documentation, stripslashes() un-quotes strings quoted
with addslashes().
The slash in the example would have never been added by addslashes()
and is not escaping any quotes or backslashes.
If this is the expected behavior, then one could say the documentation
is inaccurate and misleading.
Under return values it even says:
"Returns a string with backslashes stripped off. (\' becomes ' and so
on.) Double backslashes (\\) are made into a single backslash (\)."
I think the expected behavior one gets from the documentation differs
from the actual behavior of the function. Something along the lines of
"strips all backslashes" would be more accurate if the expected behavior
is the one you describe
Thanks
Previous Comments:
------------------------------------------------------------------------
[2008-05-02 20:32:42] [EMAIL PROTECTED]
This is expected behaviour and has always been this way.
------------------------------------------------------------------------
[2008-04-30 21:16:17] c dot onogol at gmail dot com
Description:
------------
stripslashes is supposed to remove backslashes added by addslashes():
from the doc:
stripslashes Un-quote string quoted with addslashes()
addslashes Quote string with slashes
stripslashes return values from the documentation:
Returns a string with backslashes stripped off. (\' becomes ' and so
on.) Double backslashes (\\) are made into a single backslash (\).
The problem is that it removes single backslashes that are not escaping
any quotes/slashes.
For example, "this one \ that one" should stay the same after running
stripslashes(), but it actually is stripping the backslash, so the end
result of stripslashes("this one \ that one") is "this one that one".
the backslash in "this one \ that one" is part of the original text and
is not a backslash addslashes() would add.
Reproduce code:
---------------
<?
$str = "this one \ should stay. it\'s a \"test\"";
$str = stripslashes($str);
var_dump($str);
?>
Expected result:
----------------
string(37) "this one \ should stay. it's a "test""
Actual result:
--------------
string(36) "this one should stay. it's a "test""
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=44876&edit=1