PHP « Замена внешних ссылок на внутренние

Как заменить в тексте внешние ссылки http://www.domain.com на внутренние http://MYdomain.com/jump/http://www.domain.com ?
Т.е будет работать редирект. Но нужно заменить таким образом, чтобы одна ссылка была открытой, например первая (пока не столь важно).

UPD:
Для тех, кому интересно откуда текст и ссылки в нем.

Текст добавляют пользователи. Ссылки от пользователей в тексте вредят сайту, потому их нужно либо делать внутренними с редиректом, или ставить rel="nofollow".

1 ответов


Тогда откуда в тексте пользователя появляются открытые ссылки?
И что мешает юзеру самому прописать для ссылки dofollow?
Может стоит заменять все ссылки кроме каких-то определенных доменов?

Универсальный паттерн можно пользовать:


preg_replace(
    "(<a.*?href=\"?'?)([^ \"'>]+)(\"?'?.*?>)",
    '$1http://MYdomain.com/jump/$2$3',
    $text);
 

Ничего не понятно :)
Откуда берется текст, откуда берутся ссылки, как определить "открытые" ссылки, о чем вообще речь?
Если просто в тексте заменить одни ссылки на другие - регекспом можно (preg_replace)