Регулярное выражение на PHP для проверки URL?

Вопрос

Собственно, вопрос в теме. Ищу простое, но надёжное регулярное выражение для проверки URL.


Ответ №1

Для того, чтобы проверить, является ли строка правильным URL-адресом, лучше использовать функцию filter_var():

var_dump(filter_var('example.com', FILTER_VALIDATE_URL));

Использование регулярных выражений там, где в них нет надобности - плохая практика. Однако, если по каким-то причинам Вам хочется это сделать, тогда можете воспользоваться регулярным выражением, которое используется в примере ниже:

$text = preg_replace("
  #((http|https|ftp)://(\S*?\.\S*?))(\s|\;|\)|\]|\[|\{|\}|,|\"|'|:|\<|$|\.\s)#ie",
  "'<a href=\"$1\" target=\"_blank\">$3</a>$4'",
  $text
);

Этот код ищет URL-адреса в строке и заменяет их на HTML-эквивалент ссылки.

Нет комментариев

Добавить комментарий


(обязательно)