генерация ссылок

Sefrik

Guest
генерация ссылок

Всем привет!

Есть что-то наподобие гостевой книги.
Там естественно присутствует textarea.
Пользователь пишет сообщение, нажимает кнопку "Добивить".
Дальше, скрипт обрабатывает полученный из формы текст.
Ситуация: пользователь ввел текст "Привет, посмотрите на мой последний проект www.myproject.ru"...

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

Пробовал ereg_replace.... не получилось....
пробовал через explode(" ", $_string) делать, чтобы в массив заносились все слова сообщения (через пробел) и если в слове находится подстрока, содержащая, например, www или http, то записывать это слово в тэг <a href="...">...</a>, а все остальные слова оставлять как текст.

Спасибо!
 
Найди исходники форума vBulletin.

И посмотри как там происходит тобою описанное действие.
 

Cblpok

Новичок
на форруме http://forum.dklab.ru
Приведен пример такого скрипта, но он очень длинный - мне очень не понравился и я свой придумал (и написал):
PHP:
preg_match_all("/(http:\/\/)\S+(\.ru)*(\.com)*(\.eu)*(\.ua)*(\.uk)*(\.net)*(\.ca)*(\.de)*(\.no)*(\.tut)*(\.by)*/im",$ob,$http);     //подсвечивание ссылки
for($i=0;$i<sizeof($http[0]);$i++){
$link="<a href=".$http[0][$i].">".$http[0][$i]."</a>";
$ob=preg_replace("/(http:\/\/)\S+/im",$link,$ob);
}
 

Фанат

oncle terrible
Команда форума
PHP:
preg_replace("#(https?|ftp)://\S+[^\s.,>)\];'\"!?]#",'<a href="\\0">\\0</a>',$text);
(с) mivlad

-~{}~ 23.11.04 17:51:

правда, все предложенные варианты работают с http:// но не с www.
впрочем, поиском можно, наверняка, найти и то и другое

-~{}~ 23.11.04 18:19:

для www можно предложить добавить сначала вот это
$text=preg_replace("#www\.\S+[^\s.,>)\];'\"!?]#",'http://\\0>',$text);
Не уверен, насколько это будет оптимально.
 
Сверху