Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вырезаем нужные символы 
:(
    Опции темы
Dima85
Дата 6.11.2009, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 19.7.2007

Репутация: нет
Всего: нет



Таким образом можно в переменную вводить только указанные символы, все остальные будет удаляться
Код

$text=~s/[^ a-zA-Zа-яА-Я.0-9_-]+//g;


А есть ли какое-то похожее решение которое позволяет удалить только указанные символы?

Спасибо
PM MAIL   Вверх
Logo
Дата 6.11.2009, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: 3
Всего: 10



Код

$text =~ tr/a-z//d;

PM MAIL   Вверх
Dima85
Дата 7.11.2009, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 19.7.2007

Репутация: нет
Всего: нет



Спасибо.
В продолжение темы. Я хочу это конструкцию использоваться для удаления все опасных символов:
Код

$text=~tr/<>&;#//d;


Как вам такая конструкция, возможно я что-то упустил?
PM MAIL   Вверх
pzr
Дата 9.11.2009, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 23.10.2009

Репутация: нет
Всего: нет



Код

$text =~ tr/<>&;#//d;


Это сообщение отредактировал(а) pzr - 9.11.2009, 10:26
PM MAIL   Вверх
Dima85
Дата 9.11.2009, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 19.7.2007

Репутация: нет
Всего: нет



Извините, pzr. А в чем разница?
PM MAIL   Вверх
Logo
Дата 9.11.2009, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: 3
Всего: 10



Цитата(Dima85 @ 7.11.2009,  00:18)
Спасибо.
В продолжение темы. Я хочу это конструкцию использоваться для удаления все опасных символов:
Код

$text=~tr/<>&;#//d;


Как вам такая конструкция, возможно я что-то упустил?

Смотря что считать опасными символами. Для чего это делается.

Добавлено через 1 минуту и 47 секунд
А удалит все перечисленные символы из $text корректно, если вы это имели ввиду.
PM MAIL   Вверх
Dima85
Дата 9.11.2009, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 19.7.2007

Репутация: нет
Всего: нет



в переменную $text посетитель может вводить любые символы, в свою очередь они сохраняются в файл и показываются другим посетителям.

Таким способом: $text=~tr/<>&;#//d;
я хочу избавиться от потенциально описных символов с помощью которых пользователь может сохранить на сайте вредоносный код.

Насколько правильный ход моих мыслей?
Так же возможно есть какие-то другие подобные решения?
PM MAIL   Вверх
Logo
Дата 9.11.2009, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: 3
Всего: 10



Конечно не нужно вырезать символы. Нужно просто закодировать их в entities, и выдавать без боязни. Опасными являются символы < и &.
См. модуль
http://search.cpan.org/~gaas/HTML-Parser-3...TML/Entities.pm
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0445 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.