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

Форум PHP

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

 

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

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

тема: Антимат
 
 автор: kest131   (15.03.2006 в 22:10)   письмо автору
 
 

Хочу сделать защиту от мата.
Есть слов штук 60 и надо проверять текс на эти слова.
Такой вариант:



//////
$post - Проверяемый текст.
//////

$sub3 = substr_count($post,"Бля");
$sub4 = substr_count($post,"Ебл");
$sub5 = substr_count($post,"Дроч");

if($sub3>0 or $sub4>0 or $sub5>0){$dostup="NO";}else{$dostup="YES";}



Этот вариант слишком примитивный.

Как это сделать проще?

   
 
 автор: ZC   (15.03.2006 в 22:15)   письмо автору
 
   для: kest131   (15.03.2006 в 22:10)
 

Тут в разделе Downloads есть очень даже хороший фильтр мата.

   
 
 автор: cheops   (16.03.2006 в 00:32)   письмо автору
 
   для: ZC   (15.03.2006 в 22:15)
 

Данный скрипт можно найти по ссылке http://www.softtime.ru/info/matu_net.php.

   
 
 автор: midav   (15.03.2006 в 23:24)   письмо автору
 
   для: kest131   (15.03.2006 в 22:10)
 

Всё намного проще. Обработчик данных так:

include("badwords.php");

for ($i = 0; $i < count($words); $i++) {
        $msg = str_replace($words[$i], "*****", $msg);
    }

$text="$msg";

$fp=fopen("file.dat", "a+");
flock ($fp, LOCK_EX);
fputs ($fp, "$text\r\n");
flock ($fp, LOCK_UN);
fclose ($fp);


В файле badwords.php так (извините за мат, но такая уж тема)

<?
$words 
= array('мат1','мат2');
?>


Кстати слова можно добавлять :)

   
 
 автор: kest131   (16.03.2006 в 00:04)   письмо автору
 
   для: midav   (15.03.2006 в 23:24)
 

Спасибо за помощ.

   
 
 автор: midav   (16.03.2006 в 00:06)   письмо автору
 
   для: kest131   (16.03.2006 в 00:04)
 

Всегда пожалусто, что знаем тем поможем :)

   
 
 автор: AKiRA   (16.03.2006 в 00:25)   письмо автору
 
   для: midav   (15.03.2006 в 23:24)
 

1) Скрипт мягко говоря не очень удачный.
2) Их лучше в виде файла прикреплять.

   
 
 автор: midav   (16.03.2006 в 00:27)   письмо автору
 
   для: AKiRA   (16.03.2006 в 00:25)
 

:)) Аха виноват, прошу прощения. Вот аттач

   
 
 автор: himic   (17.03.2006 в 09:57)   письмо автору
 
   для: midav   (16.03.2006 в 00:27)
 

А у меня такой антимат стоит, очень эфективен, даже слишком

<?
function zamena($post){
$post=wordwrap($post35' ',1);

$post preg_replace"#[хx](.{0,2})[уy](.{0,2})[ейёя]#is""молот"$post );
$post preg_replace"#[п](.{0,2})[и](.{0,2})[д](.{0,2})[оаеoae](.{0,2})[рp]#is""гном"$post );
$post preg_replace"#[мm](.{0,2})[аоao](.{0,2})[mм](.{0,2})[б](.{0,2})[еe](.{0,2})[tт]#is""дурак"$post );
$post preg_replace"#[г](.{0,2})[аоao](.{0,2})[нh](.{0,2})[д](.{0,2})[оo](.{0,2})[нh]#is""Шарик"$post );
$post preg_replace"#[д](.{0,2})[еe](.{0,2})[рp](.{0,2})[ь](.{0,2})[мm](.{0,2})[оoаa]#is""Солнце"$post );
$post preg_replace"#[б](.{0,2})[л](.{0,2})[я]#is""аля"$post );
$post preg_replace"#[сc](.{0,2})[уy](.{0,2})[кk](.{0,2})[аa]#is""Собачка"$post );
$post preg_replace"#[сc](.{0,2})[уy](.{0,2})[ч](.{0,2})[кk](.{0,2})[аa]#is""Собачка"$post );
$post preg_replace"#[г](.{0,2})[аa](.{0,2})[вb](.{0,2})[нh](.{0,2})[оаяoa]#is""шоколад"$post );
$post preg_replace"#[хx](.{0,2})[еe](.{0,2})[рp]#is""огурец"$post );
$post preg_replace"#[сc](.{0,2})[оo](.{0,2})[сc](.{0,2})[и]#is""Смакуй"$post );
$post preg_replace"#[ёеe](.{0,2})[бb](.{0,2})[аaуy](.{0,2})[нhтtл]#is""копать"$post );
$post preg_replace"#[п](.{0,2})[и](.{0,2})[з3](.{0,2})[д](.{0,2})[аыиаоoю]#is""пробирка"$post );
$post preg_replace"#[ёеe](.{0,2})[б](.{0,2})[уyы](.{0,2})[нhрp]#is""казанова"$post );
$post preg_replace"#[ёеe](.{0,2})[б](.{0,2})[уyиё]#is""***"$post );
$post preg_replace"#[вb](.{0,2})[ы](.{0,2})[еe](.{0,2})[бb](.{0,2})[уаay]#is""Люблю!"$post );
$post preg_replace"#[п](.{0,2})[и](.{0,2})[сc](.{0,2})[ь](.{0,2})[кk]#is""колбаска"$post );
$post preg_replace"#[ж](.{0,2})[оёo](.{0,2})[п](.{0,2})[аaуy]#is""шоколадный глаз"$post );
$post preg_replace"#[тt](.{0,2})[рp](.{0,2})[аa](.{0,2})[хx](.{0,2})[нhaа](.{0,2})[уyнheеи]#is""Попенгаген"$post );
$post preg_replace"#[мm](.{0,2})[уy](.{0,2})[д](.{0,2})[аa](.{0,2})[кk]#is""мурзик"$post );
$post preg_replace"#[ш](.{0,2})[аa](.{0,2})[л](.{0,2})[аa](.{0,2})[вb]#is""девушка лёгкого поведения"$post );
$post preg_replace"#[ш](.{0,2})[мm](.{0,2})[аa](.{0,2})[рp]#is""девушка на улице"$post );
$post preg_replace"#[тt](.{0,2})[уy](.{0,2})[тt](.{0,2})[кk](.{0,2})[аa]#is""ти меня"$post );
$post preg_replace"#[пp](.{0,2})[иi](.{0,2})[зz](.{0,2})[дd](.{0,2})[еe](.{0,2})[ц]#is""звиздец"$post );
return 
$post;
}
?>

   
Rambler's Top100
вверх

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