Добро пожаловать, Гость!
Антиспам (функция) - Страница 1
Помощь мастерам | Антиспам (функция)
NickEIK :
Надоели спамеры на сайте. Обращаюсь с помощью к вам. В полезных кусках кодов так и не нашёл рабочего и действенного метода замены ссылок. Вообщем нужна функция которая будет запрещать любые ссылки на посторонние ресурсы кроме сайта на котором данная функция работает. Желательно чтобы фильтровала как с http:// так и без. Помогите пожалуйста)
Антиспам (функция)
2 Сент 2015Надоели спамеры на сайте. Обращаюсь с помощью к вам. В полезных кусках кодов так и не нашёл рабочего и действенного метода замены ссылок. Вообщем нужна функция которая будет запрещать любые ссылки на посторонние ресурсы кроме сайта на котором данная функция работает. Желательно чтобы фильтровала как с http:// так и без. Помогите пожалуйста)
Комментарии:
Izg-20
2 Сент 2015
Автору выгрузил сейчас в ЗО, подправил некоторые неточности.
http://dcms-social.ru/user/personalfiles/3249/3456/?id_file=11556&page=1
Автору выгрузил сейчас в ЗО, подправил некоторые неточности.
http://dcms-social.ru/user/personalfiles/3249/3456/?id_file=11556&page=1
Izg-20
2 Сент 2015
RuSInet, Пиши где именно, не нужно писать "Где-то был" или "Не помню", конкретно говори.
RuSInet, Пиши где именно, не нужно писать "Где-то был" или "Не помню", конкретно говори.
Izg-20
2 Сент 2015
<?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,'ТВОЙСАЙТ.РУ');
?>
Пробуй, если нужно будет ещё - в почте обсудим.
<?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,'ТВОЙСАЙТ.РУ');
?>
Пробуй, если нужно будет ещё - в почте обсудим.