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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Guest Book, Избавьте от спама 
:(
    Опции темы
Dimoon
Дата 13.3.2006, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помогите моей Гостевой Книги избавиться от спама!
Добавил в скрипт вот такую конструкцию:
*********************
open ( CENSOR, "censor.txt" ); # Файл содержит список рекламных слов или префиксов.
@censor_word=<CENSOR>;
close (CENSOR);

foreach (@censor_word)
{
chomp($_);
# переменная $text содержит сообщение посылаемое пользователем
if ($text =~ m/$_/i){
print "Спам!";
exit;
}
*************************
Мне нужно, чтобы поиск слов проводился без учета регистра, но в моем случае i-поиск без учета регистра не срабатывает. Что я неправельно делаю?
Или может кто нибудь предложит более оптимальный вариант для поиска рекламных слов в сообщении (сравнительный анализ)

Большое спасибо!
PM MAIL   Вверх
BlackLFL
Дата 13.3.2006, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 15.9.2005
Где: Москва

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



наверно он не находит только слова содержащие кириллицу smile?
так же следует добавить модификатор g, s, для полного поиска/
Код

use locale; use POSIX qw(locale_h); setlocale(LC_CTYPE,"ru_RU.CP1251");

open ( CENSOR, "censor.txt" ); # Файл содержит список рекламных слов или префиксов.
@censor_word=<CENSOR>;
close (CENSOR);

foreach (@censor_word)
{
chomp($_);
# переменная $text содержит сообщение посылаемое пользователем
if ($text =~ m/$_/ig) { 
print "Спам!";
exit;
}



Это сообщение отредактировал(а) BlackLFL - 13.3.2006, 15:57
PM WWW   Вверх
Dimoon
Дата 13.3.2006, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



use locale; use POSIX qw(locale_h); setlocale(LC_CTYPE,"ru_RU.CP1251"); вызывает ошибку Internal Server Error
PM MAIL   Вверх
BlackLFL
Дата 13.3.2006, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 15.9.2005
Где: Москва

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



Ваша операционая система понимает данную кодировку?

perldoc locale
perldoc perllocale

Это сообщение отредактировал(а) BlackLFL - 13.3.2006, 16:52
PM WWW   Вверх
Dimoon
Дата 13.3.2006, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А нельзя ли обойтись без use locale; ?
У меня модули не подключаются
PM MAIL   Вверх
BlackLFL
Дата 13.3.2006, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 15.9.2005
Где: Москва

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



данные модули являются стандартными для Perl...

p.s. какая операционная система? версия Perl?


PM WWW   Вверх
Dimoon
Дата 13.3.2006, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



PERL version 5.8.3
Operating system Linux
Добавлено @ 17:29
BlackLFL, спасибо за помощь!
Выгрузил на сервер все работает
Я на локальном сервере тестировал (Windows), может быть поэтому use locale; ошибку вызывал
PM MAIL   Вверх
BlackLFL
Дата 13.3.2006, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 15.9.2005
Где: Москва

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



под WIndows рекомендую использовать Денвер
p.s всегда пожалуйста, обращайтесь smile

Это сообщение отредактировал(а) BlackLFL - 13.3.2006, 17:35
PM WWW   Вверх
Dimoon
Дата 13.3.2006, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А я ведь как раз денвером и пользуюсь
Денвер-2 2004-01-04

PM MAIL   Вверх
BlackLFL
Дата 13.3.2006, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 15.9.2005
Где: Москва

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



странно, почему ошибка была, установите полсдению версию + Денвер - Пакет расширения - ActivePerl
PM WWW   Вверх
Dimoon
Дата 13.3.2006, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Денвер- отличная штука, вот только редактор Perl бы еще хороший, пользуюсь Absolute Perl 0.9 beta 2 - тормозит.
Может что посоветуешь? smile
PM MAIL   Вверх
BlackLFL
Дата 13.3.2006, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 15.9.2005
Где: Москва

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



я использую HomeSite
Решает множество проблем, если программирование ведеться под WEB.
Его можно интегрировать с интерпритатор Perl, если программируешь под консоль.

Komodo, очень удобно использовать Rx Toolkit ( утилита для регулярных выражений )
PM WWW   Вверх
Dimoon
Дата 13.3.2006, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



C пакетом расширений - ActivePerl работает
Спасибо, попробую HomeSite
PM MAIL   Вверх
sharq
Дата 14.3.2006, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

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



Dimoon, вот на этой странице можно найти всевозможные дистрибутивы и редакторы для любых ОС.
Я лично использую SciTe - очень легкий, гибкий, отличная подсветка синтаксиса!
Но для новичков лучше использовать IDE - например, Komodo, OptiPerl или DzPerl.

smile


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
nitr
Дата 14.3.2006, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



оффтоп ;)
htmlmaster - Win
mcedit - *nix
smile


--------------------
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


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

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


 




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


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

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