У меня есть это регулярное выражение кода, которое должно преобразовывать все типы разных 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.
Надеюсь, это кому-то поможет.