|
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: Wed Nov 05 07: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("\\\\\\\\\\"); ???