ID: 9437
Updated by: stas
Old-Status: Open
Status: Closed
Bug Type: Strings related
Assigned To: 

The function works right. Meaning of stripslashes is reverse
of addslashes. Addslashes "escapes" the special characters,
i.e. adds slash to each of them. The slash itself is special
charactet, too. Stripslashes removes escapes, as if they
would be added by addslashes, i.e. \\ is converted back to
\. The \e escape is converted back to e. So you get three
\\-s to \ and one \e to e - leaving three slashes, exactly.

Previous Comments:

[2001-02-24 13:52:52] [EMAIL PROTECTED]
magic_quotes_gpc = Off | On

$text = "begin\\\\\\end<br>";   // 13 backslashes       
echo $text; // will print "begin\\\end" 7 backslashes   

// Ok. We think that backslash is a special symbol
// to change the meaning of the next character,
// so in the reality we have 6 backslashes and one
// sequence "a" but this mean nothing so we
// print "a" like a plain text.
// It's alright. I have no question.

// then...
$text2 = stripslashes($text);   
echo $text2;
// will print "begin\end"  3 backslashes

// WHY ????
// If the backslash is an ordinary symbol
// the function "stripslashes" should remove
// all of it.
// If the backslash is a special symbol, that
// understood by example showed above, then
// this function should remove 6 real slashes
// and echo will print "beginend".

// So, if i need realy and correct remove all slashes
// from the string i should use following algorithm:

$str = stripslashes($str);

// and i find it not so pretty............



ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at

PHP Development Mailing List <>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to