![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| ImSave |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 4.9.2009 Репутация: нет Всего: нет |
в переменной $request содержится тело запроса от браузера, например:
нужно проверить существование в этом запросе поля Accept-Flags: и если да, то проверить есть ли в нем flag3 допустим. Спасибо заранее. забыл... и после проверки удалить эту строку из $request. Это сообщение отредактировал(а) ImSave - 12.11.2009, 16:21 |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
s#^Accept-Flags: .*flag2.*$##m && print "deleted";
|
|||
|
||||
| ImSave |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 4.9.2009 Репутация: нет Всего: нет |
так??:
прошу прощения, но не могли бы вы расписать по подробнее. типа:
|
||||||
|
|||||||
| krypt3r |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 9.6.2009 Репутация: 2 Всего: 16 |
Попробуйте так
|
|||
|
||||
| ImSave |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 4.9.2009 Репутация: нет Всего: нет |
чет не срабатывает =( Добавлено через 1 минуту и 16 секунд
Спасибо. работает так:
теперь как удалить всю эту строчку? Это сообщение отредактировал(а) ImSave - 14.11.2009, 23:59 |
||||||||
|
|||||||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
# print -l User-Agent:\ Opera/9.51\ \(Windows\ NT\ 6.0\;\ U\;\ MRA\ 5.4\ \(build\ 02620\)\;\ ru\) Host:\ cbuilder.ru Accept:\ text/html,\ application/xml\;q=0.9,\ application/xhtml+xml,\ image/png,\ image/jpeg,\ image/gif,\ image/x-xbitmap,\ \*/\*\;q=0.1 Accept-Language:\ ru-RU,ru\;q=0.9,en\;q=0.8 Accept-Charset:\ iso-8859-1,\ utf-8,\ utf-16,\ \*\;q=0.1 .... Accept-Flags:\ flaf1,\ flag2\; ... | perl -0777 -plne 's#^Accept-Flags: .*flag2.*$##m && print "deleted"; '
deleted User-Agent: Opera/9.51 (Windows NT 6.0; U; MRA 5.4 (build 02620); ru) Host: cbuilder.ru Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 Accept-Language: ru-RU,ru;q=0.9,en;q=0.8 Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1 .... ... |
|||
|
||||
| ImSave |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 4.9.2009 Репутация: нет Всего: нет |
Извиняюсь конечно..но я не понимаю как это применить...куча текста и что к чему?
|
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
если вы захотите, то сможете разобраться.
|
|||
|
||||
| ImSave |
|
||||||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 4.9.2009 Репутация: нет Всего: нет |
да. вы правы. Спасибо за старания!=) Добавлено @ 13:01
строка в теле запроса выглядит так:
далее пишу:
но получаю только:
т.е. только первый находит, а должен все. Что подправить? Это сообщение отредактировал(а) ImSave - 15.11.2009, 13:04 |
||||||||||||
|
|||||||||||||
| amg |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Переменные $1, $2, ... ресетятся после каждого удачно сработавшего регулярного выражения. Потому так и получается. Исправить можно так:
Собственно, arto уже привел решение. В вашем коде первую строку нужно заменить на:
|
||||
|
|||||
| ImSave |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 4.9.2009 Репутация: нет Всего: нет |
amg, спасибо работает.
А вот с удалением...ну не срабатывает =((( вот пробую:
пробовал и:
|
||||
|
|||||
| krypt3r |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 9.6.2009 Репутация: 2 Всего: 16 |
Если уж пошла такая пляска, то
Вариант удаления
оставит пустое место между строками
Лучше уж
|
||||||||
|
|||||||||
| ImSave |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 4.9.2009 Репутация: нет Всего: нет |
Ребят, всем спасибо за помощь,
но я вот не пойму, только на до мной Perl издевается?! вот для теста:
что ж такое то Это сообщение отредактировал(а) ImSave - 16.11.2009, 12:29 |
|||
|
||||
| ginnie |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
ImSave, $request - это объект HTTP::Request, поэтому, чтобы удалить заголовок, надо использовать
т.е.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
||||
|
|||||
| ImSave |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 4.9.2009 Репутация: нет Всего: нет |
ну наконец-то. ginnie, СПАСИБО огромное.
Вот код который меня устраивает:
и я так понимаю проверку на Accept-Flags вначале можно не делать, поскольку никакого исключения не вылетит?! Это сообщение отредактировал(а) ImSave - 16.11.2009, 13:26 |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |