Замена простых ссылок на ссылки в noindex и nofollow

Статус
В этой теме нельзя размещать новые ответы.

BuzzDD

Постоялец
Регистрация
9 Фев 2009
Сообщения
76
Реакции
5
Как можно переделать ссылки вида
HTML:
<a href="http://URL.ru" title="Описание">Что-то тут</a>
на
HTML:
<noindex><a href="http://URL.ru" title="Описание" rel="nofollow">Что-то тут</a></noindex>
Текст выводится из БД, поэтому нужно учитывать возможные переносы, теги и остальное. Сам я слабо соображаю в RegExp, поэтому прошу помочь. Ещё нечто подобное можно сделать с parse_url, кажись:nezn:
 
RegExp для этого
<a(.*?href=\"?'?([^\s\"'>]+)\"?'?.*?>(.*?))</a> заменить на <noindex><a$1</a></noindex>
 
А можно полный код? Это делается с помощью preg_replace ?
Но так не работает:
PHP:
$text = "Текст <a href=\"link.php\" title=\"описание\">АНКОР</a> ура";

$pattern = "/<a(.*?href=\"?'?([^\s\"'>]+)\"?'?.*?>(.*?))</a>/";
$replace = "/<noindex><a$1</a></noindex>/";

echo preg_replace($pattern,$replace,$text);
Пишет
Warning: preg_replace() [function.preg-replace]: Unknown modifier 'a' in ****\proba.php on line 16
 
Так никто и не поможет?:(
 
Присоединяюсь к вопросу. Интересует также чтобы был параметр rel="nofollow" после href.
 
Код:
$data=preg_replace('#<a([^>]+?)href\s*=\s*(["\']*)\s*http://([^"\'\s>]+)\s*\\2([^>]*?)>(.*?)</a>#is', 
'<noindex><a$1href=$2http://$3$2$4 rel="nofollow">$5</a></noindex>', $data);
 
А как можно найти ссылки в тексте и заменить только определённые ссылки на URL: go/sitename.net/

Допустим, есть сайт Для просмотра ссылки Войди или Зарегистрируйся и на нём есть статьи в которых есть ссылки на этот же сайт и на другие ресурсы. Как изменить ссылки, которые ведут только на другие сайты? Т.е. изменить только внешние ссылки
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху