PHP 4.0 Bug #9437: Function stripslashes works not correct, as i think

From: Date: Sat, 24 Feb 2001 18:52:52 +0000
Subject: PHP 4.0 Bug #9437: Function stripslashes works not correct, as i think
Groups: php.dev 
Request: Send a blank email to php-dev+get-47405@lists.php.net to get a copy of this message
From: A.Ivanov@tu-bs.de Operating system: FreeBSD 4.2 PHP version: 4.0.4pl1 PHP Bug Type: Strings related Bug description: Function stripslashes works not correct, as i think 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............ ?> -- Edit Bug report at: http://bugs.php.net/?id=9437&edit=1

« previous php.dev (#47405) next »