Надоели спамеры на сайте. Обращаюсь с помощью к вам. В полезных кусках кодов так и не нашёл рабочего и действенного метода замены ссылок. Вообщем нужна функция которая будет запрещать любые ссылки на посторонние ресурсы кроме сайта на котором данная функция работает. Желательно чтобы фильтровала как с http:// так и без. Помогите пожалуйста)
ОБСУЖДЕНИЕ
Антиспам (функция)
вот надыбал)
<?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,'ТВОЙСАЙТ.РУ');
?>
bage, спасибо большое) буду тестить
обращайтесь