From:             [EMAIL PROTECTED]
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



-- 
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]

Reply via email to