Класс для замены/поиска чёрных сайтов

1.93K
.
The Fast, Secure and Professional - Yii2
И так, представляю маленький класс который представляет из себя черный список сайтов. Его свойство - замена или поиск запрещенных сайтов в тексте по маске.
Почти каждый владелец сайта на котором присутствуем возможность комментирования чего либо встречался с проблемой спама на его сайте. В некоторых движках организована сырая замена определенных сайтов на какой-то текст. Мой класс представляет почти тоже самое только с возможностью замены/поиска по маске. Что это значит?

Ну к примеру есть у нас на сайте который не доброжелатель который спамит свой сайт, для примера - sait.ru Подключив мой класс он не сможет использовать не один из перечисленных вариантов написания своего сайта в тексте.


http://sait.ru
https://sait.ru
sait.ru
sait,ru
sait_ru
sait .ru
sait. ru
sait-ru


И т.д. Маску вы сможете добавить сами.

Теперь перейдем к самому коду.

Представим, что переменная $text содержит текст введенный пользователем, который нам нужно очистить от запрещенных ссылок:

$text = 'Привет, заходи на мой сайт sait.ru';

$obj = new RBlackListSites();
$obj->sites = [
    [
        'host' => 'sait',
        'domain' => 'ru',
    ],
    [
        'host' => 'example',
        'domain' => 'com',
    ],
];
$obj->mask = [
    'http://{host}.{domain}',
    'https://{host}.{domain}',

    '{host}.{domain}',
    '{host},{domain}',
    '{host}_{domain}',
    '{host}-{domain}',

    '{host} .{domain}',
    '{host} ,{domain}',
    '{host} _{domain}',
    '{host} -{domain}',

    '{host} . {domain}',
    '{host} , {domain}',
    '{host} _ {domain}',
    '{host} - {domain}',

    '{host}. {domain}',
    '{host}, {domain}',
    '{host}_ {domain}',
    '{host}- {domain}',
];
$obj->replace = '***SPAM***';
$obj->setText($text);

echo $obj->getText();


Внимание!
$obj->setText($text) должен быть объявлен после указания $obj->sites и $obj->mask
Прикрепленные файлы:
.
The Fast, Secure and Professional - Yii2
Для джона можно создать функцию и вызывать её вместе с ББ-Кодами.
.
The Fast, Secure and Professional - Yii2
Это первый мой класс с документацией, да и вообще в пабл вроде не выкладывал классов. Так, что жду адекватной критики и советов.
.
The Fast, Secure and Professional - Yii2
Дальше можно будет запилить все это дело под джон, с добавлением ссылок и масок с БД
.
The Fast, Secure and Professional - Yii2
Забыл дописать к первому посту, что результатом будет "Привет, заходи на мой сайт ***SPAM***"
.
The Fast, Secure and Professional - Yii2
Сам класс

RBlackListSites (+/-)
.
The Fast, Secure and Professional - Yii2
Вот только, что придумал ещё добавить параметр query для $obj->sites.
Это позволит скрыть определённые урлы, типа site.ru/blog/3, если не нужно скрывать site.ru полностью, и позволит скрыть весь Query String если того требуется
.
Ей 25
Код использования класса конечно бомбезный... Сделай как то не знаю... Функцию какую то к классу или что. Может сам класс подшаманить. Что бы меньше кода было.
Так удобней будет. Там уже кому что надо изменить - изменит функцию или что. А то так как сейчас, половина(а может и больше) будет тыкать кругом вот тот большой код из ПП.
.
(\/)____o_O____(\/)
за комп сяду напишу что не так
.
The Fast, Secure and Professional - Yii2
# ValekS (13.02.2015 / 17:34)
Код использования класса конечно бомбезный... Сделай как то не знаю... Функцию какую то к классу или что. Может сам класс подшаманить. Что бы меньше кода было.
Так удобней будет. Там уже кому что над
Ну бомбезный потому, что много масок указываем. Для использования на сайте однозначно нужно запилить это всё в функцию и где нужно просто вызывать её blackSites($text)
Всего: 90