ОБСУЖДЕНИЕ

Антиспам (функция)

4 сообщений1 просмотровОткрыта
#1
Надоели спамеры на сайте. Обращаюсь с помощью к вам. В полезных кусках кодов так и не нашёл рабочего и действенного метода замены ссылок. Вообщем нужна функция которая будет запрещать любые ссылки на посторонние ресурсы кроме сайта на котором данная функция работает. Желательно чтобы фильтровала как с http:// так и без. Помогите пожалуйста)
#2
вот надыбал)
PHP

<?php
        # Функция
function searchURL( $text, $sities, $tag='РЕКЛАМА' )
    {
        # $sities - домены, которые встречаются в ссылках - и которые нужно сделать гиперссылкой
        # Разбиваем массив в строку
        $sities = implode( '|', $sities );
        
        # C чего могут начинаються ссылки
        $start = '((http://)|(www.))';
        
        # Шаблон поиска всех ссылок
        $pattern = '~('. $start .'[^\s]+)~i';
        
        # Заменяем ВСЕ ссылки на "РЕКЛАМА"
        $text = preg_replace( $pattern, '['.$tag.']$1[/'.$tag.']', $text );
        
        # Шаблон поиска внутренних ссылок
        $pattern = '~\['.$tag.'\]('. $start .'('.$sities.')([^\s]+)?)\[/'.$tag.'\]~i';
        
        # На что меняем
        $replace = '<a href="$1">$1</a>';
        
        # Заменяем внутренние ссылки на гиперссылки
        $text = preg_replace( $pattern, $replace, $text );       
        
        # Возвращаем текст
        return $text;
    }
        # $text - переменная сообщения
        $text = $msg;
        # Вызов функции
        echo searchURL($text,'ТВОЙСАЙТ.РУ');
?>

#3
bage, спасибо большое) буду тестить
#4
обращайтесь