ID: 9437 User Update by: [EMAIL PROTECTED] Status: Closed Bug Type: Strings related Description: Function stripslashes works not correct, as i think >The function works right. Meaning of stripslashes is reverse I don't think so. >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. Ok. Say me please, what should i get for stripslashes("\\\\\\\\\\"); ??? Previous Comments: --------------------------------------------------------------------------- [2001-03-20 05:51:36] [EMAIL PROTECTED] 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. --------------------------------------------------------------------------- [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: while(preg_match("/\/",$str)) $str = stripslashes($str); // and i find it not so pretty............ ?> --------------------------------------------------------------------------- Full Bug description available at: http://bugs.php.net/?id=9437 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]