Если вы используете PHP 5 (и вы должны это делать!), Просто используйте filter_var()
:
function is_url($url)
{
return filter_var($url, FILTER_VALIDATE_URL) !== false;
}
Addendum: as Ручной ввод PHP дляparse_url()
(и @Liutas в своем комментарии) указывает:
Эта функция не предназначена для проверки заданного URL, онатолько разбивает его на перечисленные выше части.Частичные URL-адреса также принимаются, parse_url () старается их правильно проанализировать.
Например, parse_url()
рассматривает строку запроса как часть URL-адреса.Однако строка запроса - это , а не полностью URL.Следующая строка кода:
var_dump(parse_url('foo=bar&baz=what'));
Выводит это:
array(1) {
["path"]=>
string(16) "foo=bar&baz=what"
}