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

  • Автор темы Автор темы Jass
  • Дата начала Дата начала

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>

Заранее спасибо всем за ответы!
 
Автор оригинала: 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'];
    }
тока хочется что-нить поразумнее! и с обработкой всех ссылок, а не тока одной и то в этом случае концом строки должна быть ссылка!
 
йоу!
я правильно понимаю, что два фрагмента в этом коде отличаются одной буквой?
 
Автор оригинала: Фанат
йоу!
я правильно понимаю, что два фрагмента в этом коде отличаются одной буквой?
ты догадливый
ЗЫ: конечно понимаю что не хорошо, но это сырой код... потом есно доработаю... но всё же интересует вопрос из первого поста!
 
вот смотри... для чего тебе все эти стрпос? ведь достаточно одного [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');
 
Автор оригинала: 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]');
Огромное спасибо!
 
Сверху