Регулярное выражение на 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-эквивалент ссылки.

No responses yet

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