Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Функция stripslashes()
 
 автор: Leklerk   (01.08.2009 в 23:20)   письмо автору
 
 

В "Справочнике функций PHP" на этом сайте читаем
Функция stripslashes — Удаляет экранирование символов, произведенное функцией addslashes()
Однако, убедился в том, что stripslashes() удаляет обратные слеши и перед, например, символом / (PHP 5.2.9).
Всё дело в разнице между PHP4 и PHP5?

  Ответить  
 
 автор: Trianon   (01.08.2009 в 23:26)   письмо автору
 
   для: Leklerk   (01.08.2009 в 23:20)
 

>...Функция stripslashes — Удаляет экранирование символов, произведенное функцией addslashes()
>Однако, убедился в том, что stripslashes() удаляет обратные слеши и перед, например, символом /

Где Вы наблюдаете противоречие?

  Ответить  
 
 автор: Leklerk   (01.08.2009 в 23:30)   письмо автору
 
   для: Trianon   (01.08.2009 в 23:26)
 

В описании addslashes():
Экранируются одиночная кавычка ('), двойная кавычка ("), обратный слэш (\) и NUL (байт NULL).
Значит, если
stripslashes — Удаляет экранирование символов, произведенное функцией addslashes()
то речь идёт как раз об указанных символах...

  Ответить  
 
 автор: Trianon   (01.08.2009 в 23:40)   письмо автору
 
   для: Leklerk   (01.08.2009 в 23:30)
 

после функции addslashes он там в одиночку появиться не сможет.
а двойной, само собой, будет возвернут в одинарный.

  Ответить  
 
 автор: Leklerk   (01.08.2009 в 23:54)   письмо автору
 
   для: Trianon   (01.08.2009 в 23:40)
 

Согласен. Но речь идёт о том, что функция stripslashes() делает несколько больше, чем
Удаляет экранирование символов, произведенное функцией addslashes()

  Ответить  
 
 автор: Leklerk   (01.08.2009 в 23:57)   письмо автору
 
   для: Trianon   (01.08.2009 в 23:40)
 

>после функции addslashes он там в одиночку появиться не сможет.
В том-то и дело. Почему тогда он удаляется функцией stripslashes()?

  Ответить  
 
 автор: Trianon   (02.08.2009 в 00:08)   письмо автору
 
   для: Leklerk   (01.08.2009 в 23:57)
 

как несоответствующий синтаксису наверное

  Ответить  
 
 автор: yuk   (02.08.2009 в 00:40)   письмо автору
 
   для: Leklerk   (01.08.2009 в 23:57)
 

Если открыть этот же справочник и прочитать далее - вы найдете:
Удаляет экранирующие бэкслэши. (\' преобразуется в ', и т.д.). Двойные бэкслэши (\\) преобразуется в одиночные(\).

т.е., как я понимаю, последовательность \/ - воспринимается как экранированный /

  Ответить  
 
 автор: Leklerk   (02.08.2009 в 09:21)   письмо автору
 
   для: yuk   (02.08.2009 в 00:40)
 

>Если открыть этот же справочник и прочитать далее - вы найдете:
>Удаляет экранирующие бэкслэши. (\' преобразуется в ', и т.д.). Двойные бэкслэши (\\) преобразуется в одиночные(\).
>
>т.е., как я понимаю, последовательность \/ - воспринимается как экранированный /
Вот это "и т.д.", учитывая первую строку
Функция stripslashes — Удаляет экранирование символов, произведенное функцией addslashes()
воспринимается соответствующим образом. Если функция удаляет все экранирующие бэкслэши, почему так и не написать?

  Ответить  
 
 автор: Trianon   (02.08.2009 в 09:51)   письмо автору
 
   для: Leklerk   (02.08.2009 в 09:21)
 

Вообще-то в справочнике написано по-другому.

Return Values

Returns a string with backslashes stripped off. (\' becomes ' and so on.) Double backslashes (\\) are made into a single backslash (\).



(мой перевод)
Возвращаемые значения
Возвращается строка с вырезанными бэкслэшами. (\' превращается в ' и т.п.)
Двойные бэкслэши (\\) будут преобразованы в одинарные (\).


Где несоответствие?

  Ответить  
 
 автор: Leklerk   (02.08.2009 в 10:16)   письмо автору
 
   для: Trianon   (02.08.2009 в 09:51)
 

>Где несоответствие?
В документации всё как раз правильно и чётко. Я и не спорю. Я говорил об описании в "Справочнике функций PHP" по адресу http://softtime.ru/bookphp/group.php?id_group=0...

  Ответить  
 
 автор: Valick   (02.08.2009 в 10:23)   письмо автору
 
   для: Leklerk   (02.08.2009 в 10:16)
 

а там где несоответствие?

  Ответить  
 
 автор: Leklerk   (02.08.2009 в 10:33)   письмо автору
 
   для: Valick   (02.08.2009 в 10:23)
 

>а там где несоответствие?
Читайте выше, там всё написано.

  Ответить  
 
 автор: Valick   (02.08.2009 в 10:42)   письмо автору
 
   для: Leklerk   (02.08.2009 в 10:33)
 

Вот именно, что написано, только то что написано, а не то что вы себе придумали.
Начинаю вынос мозга....
Функция stripslashes — Удаляет экранирование символов, произведенное функцией addslashes()
Вы хотите сказать , что существуют случаи при которых функция stipslashes() не удаляет бэкслеши добавленные функцией addslashes()?
где Вы тут увидели слово "только"?

  Ответить  
 
 автор: Trianon   (02.08.2009 в 10:43)   письмо автору
 
   для: Leklerk   (02.08.2009 в 10:16)
 

.

  Ответить  
 
 автор: neadekvat   (02.08.2009 в 01:17)   письмо автору
 
   для: Leklerk   (01.08.2009 в 23:20)
 

[поправлено модератором]

  Ответить  
 
 автор: Leklerk   (02.08.2009 в 09:23)   письмо автору
 
   для: neadekvat   (02.08.2009 в 01:17)
 

Мне просто интересно, как работает функция. Не "в общих чертах", а точно...
Но в документации-то всё чётко... :)

  Ответить  
 
 автор: Valick   (02.08.2009 в 09:42)   письмо автору
 
   для: Leklerk   (02.08.2009 в 09:23)
 

<?php
$text
="Hello world \/ bye ' Привет мир";
$text=addslashes($text);
echo 
$text."<br />";
$text=stripslashes($text);
echo 
$text."<br />";
?> 

Чё не так?
а если Вы добавили обратный слэш ручками, то ручками его и удаляйте, неча stripslashes() юзать без addslashes().

  Ответить  
 
 автор: Leklerk   (02.08.2009 в 10:31)   письмо автору
 
   для: Valick   (02.08.2009 в 09:42)
 

Спасибо за совет, Valick... :) Каждую функцию можно использовать для разных целей. И чтобы знать, для каких именно целей можно использовать ту или иную функцию, необходимо знать что делает эта функция. Речь идёт о том, что описание функции stripslashes() на http://softtime.ru/dic/id_dic=65&id_group=0 не соответствует действительности...

  Ответить  
 
 автор: Valick   (02.08.2009 в 10:43)   письмо автору
 
   для: Leklerk   (02.08.2009 в 10:31)
 

соответствует.
оно может быть неполным, но оно соответствует... (читайте выше)

  Ответить  
 
 автор: Leklerk   (02.08.2009 в 11:17)   письмо автору
 
   для: Valick   (02.08.2009 в 10:43)
 

>соответствует.
>оно может быть неполным, но оно соответствует... (читайте выше)
Ну хоть кто-то понял... :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования