Выделение линки

mm

Guest
Выделение линки

Есть такая проблема: в базе хранится текст, который возможно содержит ссылки и мне нужно ее выделить (ну чтоб открывалась при нажатии)
подскажите как плз..:)
 

mm

Guest
огромное спасибо :)

-~{}~ 29.05.05 17:50:

Все же есть одна проблема, текст может быть и в html и могут быть ссылки ... получается примерно так <a href="<a href="http://www.qq.ru>qq</a>http://www.qq.ru">qq</a></a>
 

Фанат

oncle terrible
Команда форума
у тебя есть два варианта. Нет - три.
первый - написать нужное выражение самостоятельно.
второй - ждать, пока тебе кто-то напишет на форуме.
третий - поискать самостоятельно.

Я так понимаю, что тебя устраивает только второй вариант.
Жди.
 

specialist

Guest
покажи то, что ты сам попробывал написать и оно не работает..попробуем помочь..посоветуем...
 

mm

Guest
specialist, что-то типа
$text='http://www.yandex.ru qqq <a href="http://www.yandex.ru">яндекс</a>';
$text=preg_replace("#(https?|ftp)://\S+[^\s.,>)\];'\"!?]#",'<a href="\\0">\\0</a>',$text);
echo $text;
если в тексте нет уже выделенных ссылок, нормально работает, но если есть получается белиберда

SelenIT, вроде помогло :)
$html = 'http://www.qq.ru/?qq=ww <br>
<a href="htt://ww.qq.ru">qq</a>';
$substring = 'http\S+';
$replacement = '<a target=_blank href=$2>$2</a>';
$result = preg_replace("/((?:^|>)[^<]*)($substring)/s", '$1'.$replacement,
$html);
echo $result;

работает

-~{}~ 01.06.05 11:48:

Хотя тут тоже есть один баг, если радом с ссылкой (т.е. без пробела) есть какой-то тег, например <br> получается <a target=_blank href=http://www.qq.ru/?qq=ww<br>>http://www.qq.ru/?qq=ww<br></a>
 
Сверху