найти все URL (ссылки) в тексте с помощью php

У меня есть это регулярное выражение кода, которое должно преобразовывать все типы разных URL-адресов в ссылки в некотором тексте.

Код preg_replace:

$regex = '@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)@'; $text = preg_replace($regex, '<a href="$1">$1</a>', $item); 

теперь он работает почти для всех URL-адресов, которые вы можете себе представить, но проблемы, которые у меня есть, – это запятые и специальные символы в URL-адресах …

Проблема в том, что я делаю:

http://www.sdfsdfsdf.sd/si/391,1000,1/more.html

http://sdfsddsdf-sdfsdfds.sr/component/option,com_contact/Itemid,3/lang,si/

Смешные здесь, в stackoverflow, эти двое в порядке 🙂

Спасибо, с наилучшими пожеланиями,

Вы должны отредактировать свое регулярное выражение. Это сделает работу:

 $regex = '@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.\,]*(\?\S+)?)?)*)@'; 

Как вы можете видеть, здесь добавлена ​​запятая [-\w/_\.\,] И ничего больше.

Наслаждайтесь!

Попробуйте использовать следующую функцию:

 function replaceURLWithHTMLLinks(text) { var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; return text.replace(exp,"<a href='$1'>$1</a>"); } 

Найденный здесь: Как заменить простые ссылки на ссылки?

Вы можете использовать этот lib https://github.com/mxkh/url-finder для простого поиска URL-адресов на странице HTML или в тексте. Iinstall с композитором- composer require mxkh/url-finder

Кроме того, у этой библиотеки есть поддержка поиска видеороликов из популярных видеоуслуг sach as Youtube, Vimeo.

Надеюсь, это кому-то поможет.