khipster
@khipster

Как работает функция stripslashes?

Возвращает строку с вырезанными обратными слешами. (\' становится ' и т.п.) Двойные обратные слеши (\\) становятся одинарными (\). php.net/manual/ru/function.stripslashes.php

Но у меня такой код возвращает пустую строку:
$var = '\\';
$var = stripslashes($var);
echo $var;

А такой вызывает ошибку T_ENCAPSED_AND_WHITESPACE:
$var = '\\\';
$var = stripslashes($var);
echo $var;

И наконец такой выводит один обратный слэш \:
$var = '\\\\';
$var = stripslashes($var);
echo $var;
  • Вопрос задан
  • 550 просмотров
Пригласить эксперта
Ответы на вопрос 2
prototype_denis
@prototype_denis
Symfony
Конечно...
'\\' тут вы просто экранируете слэш
'\\\' тут экранируете слэш и кавычку (редактор не подсвечивает, нет?)
'\\\\' здесь вы экранируте 2-ую и 4-ую. В итоге 2-ая экранирует 4-ую, что на выходе даёт один обратный слэш

var_dump(
    stripslashes('\\'),         // ""
    stripslashes('\\\\'),       // "\"
    stripslashes('\\\\\\'),     // "\"
    stripslashes('\\\\\\'),     // "\"
    stripslashes('\\\\\\\\')    // "\\"
);

var_dump(
    stripslashes('\ '),         // " "
    stripslashes('\\ '),        // " "
    stripslashes('\\\ '),       // "\ "
    stripslashes('\\\\ '),      // "\ "
    stripslashes('\\\\\ ')      // "\ "
);


В общем не заморачивайтесь с этой магией.
Ответ написан
Stalker_RED
@Stalker_RED
Если вы напишете "\" вы получите ошибку не только в php, но и в js, sql или в c++, например.
И это не магия, а непонимание синтаксиса, в частности экранирования.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы