СКРИПТЫ alt phpjshtmlcssblog
Мы переходим на новый движок - возможны сбои в работе сайта! подробнее...
ТЕГИ:
php (263)
js (133)
html (129)
css (96)
html tags (59)
form html (29)
php array (28)
edit text (25)
foto (23)
fonts (22)
forum (19)
board (17)
html book (17)
atom (17)
hosting (17)
Показать еще :
js jquery (16)
svg (16)
js method (16)
php file (15)
ruweb.net (15)
color (14)
jquery (14)
osclass (13)
htaccess (13)
table (12)
path (12)
online (11)
icon (11)
input (11)
php date (11)
notepad (11)
yandex (11)
url (10)
info (10)
php img (10)
jsphp (8)
form (8)
task (8)
php url (7)
comment (7)
ftp (6)
cookie (6)
js url (6)
bbcode (6)
click (6)
reg.ru (5)
value (5)
search (5)
js id (5)
adminka (5)
select (4)
js copy (4)
js form (4)
vk (3)
captcha (3)
js time (3)
vs code (3)
ukoz (2)
js post (2)
tag hr (2)
seo (2)
numbers (1)
ssl (1)
smile (1)
books (1)
header (1)

поиск плохих слов в тексте, фильтруем мат

Самый простой, какой только можно придумать – фильтр для слов через php! Как бы нам не хотелось жить в идеальном мире, но в нем как было так и есть множество идиотов, считающих себя самыми умными!

Чтобы им так не казалось на сайтах ставятся фильтры различной сложности и даже есть целые какие-то библиотеки! Или очень часто называют фильтрация плохих слов, матерный фильтр и т.д…

Как отфильтровать мат и др.нежелательные слова

  1. Алгоритм фильтра плохих слов/мата php
  2. Скрипт фильтра плохих слов/мата php
  3. Скрипт 2 фильтра плохих слов/мата php
  4. Поиск и замена плохих слов/мата php
  5. Скачать можно здесь

  1. Алгоритм фильтра плохих слов/мата php

    Это скорее не алгоритм, а необходимые элементы.

    В некую переменную мы должны положить наш текст, который нужно проверить.

    У нас должна быть функция, которая будет проверять этот текст на наличие мата.

    Массив "мат слов". Лучше всего использовать, построчно записанные "мат слова", в переменную, чтобы не заморачиваться с точками и запятыми при создании массива. А потом с помощью explode - автоматически создать массив.

    И далее сам процесс... в цикле проверять наличие мат слов в тесте.

    Самая главная проблема в фильтрации мата - это поиск и исключение матерных слов в тексте!

    В чем проблема!?

    Слово матерное, может быть в другом регистре, матерное слово может быть с пробелом, с тире, и др.знаками, с числом.

    Итого, напрашивается вывод, что нужно избавиться от всех знаков и пробелов, кроме букв, все привести к одному регистру, например к строчным -> strtolower и уже после этого нужно искать то слово!

    Как искать матерное слово!?

    Поскольку нужно проверять на совпадение каждого слова, то понадобится цикл

    Последнее время, чаще всего использую функцию substr_count - коротко записывается, хорошо работает - просто нравится!

    Замена матерного слова

    После того, как вы нашли слово, то его нужно заменить на... что-то... на ваше усмотрение


  2. Скрипт фильтра плохих слов/мата php

    Здесь надо сказать, что в какой-то момент strtolower так меня притомил, что я написал собственную функцию, чтобы она работала всегда -> strtolower собственная функция!

    1). Фильтрация плохих слов/мата в php.

    Для этого нам понадобится два объекта

    1.Где будем искать
    2.Что будем искать!
    Один из вариантов был уже описан на странице проверки на совпадение

    Текст нам нужно привести в нижний регистр(как я уже ранее говорил) -> strtolower

    1). Теперь немного о strtolower, если у вас UTF-8:

    $text = mb_strtolower($text , "UTF-8");

    2). Если у вас Windows-1251, то скорее всего должна сработать обычная strtolower:

    $text = strtolower($text);

    3). Способ, которым пользуюсь сейчас, берем собственную функцию, которой также говорили ранее

    $text = my_strtolower($text);

    Далее нам потребуется массив слов, которые будем искать в тексте

    Array

    (

    [0] => привет

    [1] => пока

    [2] => враг

    )

    Самый простой скрипт фильтрации плохих слов/мата php

    Этот скрипт сделан для понимания, как фильтрация должна работать...

    for($i = 0; $i < count($array); $i++)

    {

    $res = @substr_count($text , $array[$i]);

    if($res == true){ $Bad = " У нас нельзя ругаться "; }

    }


    Теперь давайте сделаем форму и в ней вы можете отправить какой-то текст с одним словам из выше указанного массива.


  3. Скрипт 2 фильтра плохих слов/мата php

    Второй вариант ничем не отличается по логике от первого, лишь было отличие в функции, которая искала совпадения [strpos]

    Это немного мудренее и вначале я использовал именно этот код…

    for ($i=0; $i < count($words); $i++)

    {

        if (@strpos($proverka_bad_words, trim($words[$i])) !== false) 

        {

        $Bad = " У нас нельзя ругаться ";     

        }

    }


  4. Поиск и замена плохих слов/мата php

    Что касается замены плохих слов, и вывода текста с каим-то,на что было заменено.. это - слишком трудоемкая задача и нет явного решения.

    Я встречался с такой задачей на нашей системе комментирования, и пришел к следующему - отправка на проверку админа данного сообщения, если мат обнаружен.

    Если сообщение, с матом прошло фильтр, то просто вручную удаляем сообщение. Пользователя блокируем навсегда!

    Время, сложность, ресурсы - требуемые на решение задачи замены этих слов не стоит всего этого! Но Вы!

    Всегда можете пойти своим путем.

Пользуйтесь на здоровье! Не забудьте сказать спасибо
Название скрипта :Простой фильтр текста php
Ссылка на скачивание : Все скрипты на одной странице

Сообщение системы комментирования :

01.09.2021

Форма пока доступна только админу... скоро все заработает...надеюсь...

Последние комментарии :
Марат :
17.09.2021 28:02
Установка Яндекс поиск на сайт! Контент обновлен на 100%. Такое ощущение, что старый текст не я…
подробнее.
Марат :
07.09.2021 23:21
Частенько приходится исправлять ошибки и вот...как-то я обратил внимание на надпись: "нажми ctrl enter" на сайте и…
подробнее.
Марат :
23/07/2021 10:58
Сам офигеваю...
подробнее.
александр анатольевич таширев :
21/07/2021 02:47
прикольно
подробнее.
Марат :
17/07/2021 04:14
Рад, что помог! Приходите ещё!
подробнее.
Slomal Plintus :
16/07/2021 06:41
спасибо за ответ, очень помогло!
подробнее.