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

Форум Регулярные Выражения

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

 

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

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

тема: Как блокировать иностранные сообщения в форуме?
 
 автор: golduser   (22.04.2011 в 13:07)   письмо автору
 
 

Здравствуйте!
Мой форум (на основе phpbb2) задуман как русскоязычный. Как мне блокировать сообщения пользователей на английском и немецком, по сути являющиеся спамом? Думаю, что регулярные выражения помогут, но не умею пользоваться ими на таком уровне, чтобы что-то изменить в скрипте форума. Отдельные части кода, выложенные на вашем форуме, могу понять, а сложить вместе не получается. И не знаю, какой файл в скрипте моего форума изменить.
Прошу помоши:
Вариант первый: как сделать так, чтобы скрипт форума распознавал четыре слова подряд не на русском языке и запрещал выкладывать сообщение, включающее больше четырех иностранных слов подряд? А пользователю в ответ шло бы сообщение типа "Если вы смогли зарегистрироваться на русскоязычном форуме, будьте добры выкладывать свои сообщения на русском языке". Размер в четыре слова - это для того, если кто-то в русскоязычном контенте напишет название фирмы или программы на иностранном языке.
Вариант второй: вместо четырех слов возможно распознать только первые две буквы первого слова сообщения как иностранные. А последующая реакция скрипта, как в первом варианте.
Спасибо.

  Ответить  
 
 автор: Gubichev   (22.04.2011 в 13:31)   письмо автору
 
   для: golduser   (22.04.2011 в 13:07)
 

Вариант 1:
$str = "hello, hello hello hello";
if(preg_match("#([a-z]{1,}[, ]+){3}[a-z]{1,}#i",$str)) { echo "Fuck you";}
else
{
    echo "Ваше сообщение добавлено";
}

  Ответить  
 
 автор: golduser   (22.04.2011 в 14:04)   письмо автору
 
   для: Gubichev   (22.04.2011 в 13:31)
 

Спасибо, первая часть кода ясна. А куда, в какой файл форума phpbb это впендюрить?
p.s. Только что на другом форуме мне посоветовали: достаточно проверить текст на отсутствие русских букв. Думаю, код будет проще.

  Ответить  
 
 автор: cheops   (22.04.2011 в 15:04)   письмо автору
 
   для: golduser   (22.04.2011 в 14:04)
 

>p.s. Только что на другом форуме мне посоветовали: достаточно проверить текст на отсутствие
>русских букв. Думаю, код будет проще.
Для этого можно воспользоваться следующим регулярным выражением
#[а-я]#

  Ответить  
 
 автор: Gubichev   (22.04.2011 в 15:37)   письмо автору
 
   для: golduser   (22.04.2011 в 14:04)
 

А как быть с теми сообщениями в которых нет русских букв, но есть смайлик либо, либо картинка, либо название музыки/программы?

  Ответить  
 
 автор: golduser   (22.04.2011 в 15:50)   письмо автору
 
   для: Gubichev   (22.04.2011 в 15:37)
 

А на смайлики бот не должен реагировать. Тут у меня в чем заморочка-то: на мой форум выкладывают какую-то чертовщину на английском и немецком. И все юзеры при регистрации указывают такой имейл: ***@bizzinfos.info. Вместо точек - три цифры, а после собачки - одно и то же. Может быть мне их по имейлу блокировать, уже при регистрации? Подскажите, как?

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

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