| 
        php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
  [2001-02-24 13:52 UTC] A dot Ivanov at tu-bs dot de
 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 "begin\end".
// 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............
?>
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits             
             | 
    |||||||||||||||||||||||||||
            
                 
                Copyright © 2001-2025 The PHP GroupAll rights reserved.  | 
        Last updated: Tue Nov 04 08:00:01 2025 UTC | 
>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("\\\\\\\\\\"); ???