Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Функция фильтра текста от мата
Форумы портала PHP.SU » PHP » Пользовательские функции » Функция фильтра текста от мата

Страниц (1): [1]
 

1. ASHOOT-x86 - 12 Июля, 2008 - 06:27:12 - перейти к сообщению
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. function antoxa_filter_antimat($str)
  4. {
  5. @setlocale(LC_ALL, array ('ru_RU.CP1251', 'rus_RUS.1251'));
  6. return preg_replace("/\w{0,5}[хx]([хx\s\!@#\$%\^&*+-\|\/]{0,6})[уy]([уy\s\!@#\$%\^&*+-\|\/]{0,6})[ёiлeеюийя]\w{0,7}|\w{0,6}[пp]([пp\s\!@#\$%\^&*+-\|\/]{0,6})[iие]([iие\s\!@#\$%\^&*+-\|\/]{0,6})[3зс]([3зс\s\!@#\$%\^&*+-\|\/]{0,6})[дd]\w{0,10}|[сcs][уy]([уy\!@#\$%\^&*+-\|\/]{0,6})[4чkк]\w{1,3}|\w{0,4}[bб]([bб\s\!@#\$%\^&*+-\|\/]{0,6})[lл]([lл\s\!@#\$%\^&*+-\|\/]{0,6})[yя]\w{0,10}|\w{0,8}[её][bб][лске@eыиаa][наи@йвл]\w{0,8}|\w{0,4}[еe]([еe\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[uу]([uу\s\!@#\$%\^&*+-\|\/]{0,6})[н4ч]\w{0,4}|\w{0,4}[еeё]([еeё\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[нn]([нn\s\!@#\$%\^&*+-\|\/]{0,6})[уy]\w{0,4}|\w{0,4}[еe]([еe\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[оoаa@]([оoаa@\s\!@#\$%\^&*+-\|\/]{0,6})[тnнt]\w{0,4}|\w{0,10}[ё]([ё\!@#\$%\^&*+-\|\/]{0,6})[б]\w{0,6}|\w{0,4}[pп]([pп\s\!@#\$%\^&*+-\|\/]{0,6})[иeеi]([иeеi\s\!@#\$%\^&*+-\|\/]{0,6})[дd]([дd\s\!@#\$%\^&*+-\|\/]{0,6})[oоаa@еeиi]([oоаa@еeиi\s\!@#\$%\^&*+-\|\/]{0,6})[рr]\w{0,12}/i", "***", $str);
  7. }
  8. ?>
  9.  

написал не я, но я выкладываю... не знаю кто автор))
CODE (text):
скопировать код в буфер обмена
  1. <?php
  2. echo antoxa_filter_antimat("Здесь пример жесткого мата, который я не буду писать на страницах форума PHP.SU");
  3. ?>
2. Джур - 12 Июля, 2008 - 11:10:17 - перейти к сообщению
очередная попытка. Улыбка Вот например в русском языке: "сучить ногами" ничего плохого не означает, но фильтр превратит слово в "*** ногами", а вот такое пропустит.
PHP:
скопировать код в буфер обмена
  1. <?
  2. echo antoxa_filter_antimat('падоноГ ты уебаHый лошapо');

Тут, как и с вирусами, простой проверкой сигнатур не обойтись.
3. valenok - 12 Июля, 2008 - 11:51:17 - перейти к сообщению
Фильтруй базар?
4. Seodaiter - 17 Сентября, 2009 - 16:34:32 - перейти к сообщению
а чего мучатся с этими регулярными выражениями, перелопать все маты и делов то.
5. dmaw - 06 Февраля, 2010 - 22:21:25 - перейти к сообщению
А есть ли у кого сборничек нехороших слов?
6. RomAndry - 06 Февраля, 2010 - 23:01:54 - перейти к сообщению
иногда "из песни слов не выкинешь" =)))
7. dmaw - 08 Февраля, 2010 - 08:51:34 - перейти к сообщению
Можно кстати при попытке написать нехорошее слово делать запиь в специальный лог, где будет написано на какой странице юзер хотел применить это слово, потом можно будет зайти на страницу и проверьть введённый текст своими глазами.

 

Powered by ExBB FM 1.0 RC1