Обработка URL в строке

Jass

Новичок
Обработка URL в строке

Здравствуйте! Вопрос след.:
Есть строка
требуется все найденные УРЛы в строке (не зависимо от того, какой урл http https ftp и т.п.) заменить на ссылки, т.е. что бы получилось что-то подобное:
New session. Referer: <A href="http://blablabla.ru/43534/234234">blablabla.ru</A> to <A href="https://blibli.ru">blibli.ru</A>
Заранее спасибо всем за ответы!
 

Jass

Новичок
Автор оригинала: sage
сам хоть пытался?
конечно...
PHP:
    IF(strpos($row['action'], "http://"))
    {
      $pma = strpos($row['action'], "http://");
      preg_match("/^(http:\/\/)?([^\/]+)/i", substr($row['action'], $pma), $host);
      $pma = substr($row['action'], 0, $pma).'<A href="'.substr($row['action'], $pma).'" target="_blank">'.$host[2].'</A>';
    }
    ELSE IF(strpos($row['action'], "https://"))
    {
      $pma = strpos($row['action'], "https://");
      preg_match("/^(https:\/\/)?([^\/]+)/i", substr($row['action'], $pma), $host);
      $pma = substr($row['action'], 0, $pma).'<A href="'.substr($row['action'], $pma).'" target="_blank">'.$host[2].'</A>';
    }
    ELSE
    {
      $pma = $row['action'];
    }
тока хочется что-нить поразумнее! и с обработкой всех ссылок, а не тока одной и то в этом случае концом строки должна быть ссылка!
 

Фанат

oncle terrible
Команда форума
йоу!
я правильно понимаю, что два фрагмента в этом коде отличаются одной буквой?
 

Jass

Новичок
Автор оригинала: Фанат
йоу!
я правильно понимаю, что два фрагмента в этом коде отличаются одной буквой?
ты догадливый
ЗЫ: конечно понимаю что не хорошо, но это сырой код... потом есно доработаю... но всё же интересует вопрос из первого поста!
 

sage

Новичок
вот смотри... для чего тебе все эти стрпос? ведь достаточно одного [m]preg_replace[/m]. осталось только написать само выражение... например, для http/https можно так:
PHP:
echo preg_replace('!(https?)://([^ /]+)([^ ]*)!', '<a href="\1://\2\3">\2</a>', 'New session. Referer: http://blablabla.ru/43534/234234 to https://blibli.ru');
 

Jass

Новичок
Автор оригинала: sage
вот смотри... для чего тебе все эти стрпос? ведь достаточно одного [m]preg_replace[/m]. осталось только написать само выражение... например, для http/https можно так:
PHP:
echo preg_replace('!(https?)://([^ /]+)([^ ]*)!', '<a href="\1://\2\3">\2</a>', 'New session. Referer: [url]http://blablabla.ru/43534/234234[/url] to [url]https://blibli.ru[/url]');
Огромное спасибо!
 
Сверху