Автор Тема: антимат  (Прочитано 2837 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
антимат
« : 02 Сентября 2001, 22:50:51 »
Люди, кто разбирается в синтаксисе регулярных выражений, помогите сделать функцию для анимата
Должна она делать примерно следующее:

плохое_слово -> пл********во;
нехорошее_слово -> не********во;
нецензурное_слово -> нецен********во;

Можно было обойтись str_replace, но она чуствительна к регистру и предусмартивать все варианты больших
 и маленьких букв будет накладно.

Оффлайн Doctor013

  • Скорая помощь
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.hitline.ru
Антимат
« Ответ #1 : 28 Сентября 2001, 08:35:45 »
Есть у меня скриптик,  точнее процедура, на входе - строка, на выходе - флаг. Правда, нужна доработка, предусмотреть все ситуации без коллективного разума не получится. Если интересно - вышлю

  • Гость
антимат
« Ответ #2 : 05 Октября 2001, 07:36:29 »
а чем тебе не подходит
 eregi_replace()??
 $str= "Все вы п____лы";
 $pat= "п_____лы"; #только здесь придется сделать цикл
 $repl ="*******";  # по массиву
 echo (ereg_replace($pat,$repl,$str));
 вывод - Все вы ******
 Массив -это "словарь" не цензурных выражений

Оффлайн Doctor013

  • Скорая помощь
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.hitline.ru
антимат
« Ответ #3 : 05 Октября 2001, 08:08:21 »
Можно сделать и так, решений много.  Слабое место твоей проверки- ты сразу меняешь мат на звездочки, в общем случае можно сделать выбор реакции - либо менять, либо выводить предупреждение о недопустимости мата в сообщении. Кстати, наткнулся еще на одни грабли - некоторые "продвинутые" меняют русские буквы на похожие английские или заменяют "а" на @. Ругались бы наши юзеры на русском - проблем бы не было, меняешь буквы и проверяешь, но ведь они ругаются и на английском и на немецком. Можно, конечно сделать анализ слова на предмет принадлежности к русскому или какому другому языку, но можно тогда представить, во что выльется наш скрипт. Единственное оптимальное решение, которое я нашел - это в словаре  нецензурных выражений тоже сразу поменять латиниские символы на кириллицу. Тогда у нас получается следующий алгоритм: получаем проверяемую строчку, копируем ее и начинаем обрабатывать: опускаем в нижний регистр, меняем латиницу на кирилицу ("a" на "а", "f" на "ф", "@" на "а" и тд) и  проверяем на вхождение  мата. Результат проверки может быть сообщение или сразу в исходной строке меняем на "*" . Если видишь слабые места в алгоритме - пиши...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28