scheme - например, http
host
port
user
pass
path
query - запрос, после знака вопроса ?
fragment - фрагмент, после знака хэша #
Эта функция не предназначена для проверки заданного URL, она только разбивает его на вышеперечисленные части. Частичные url также принимаются; parse_url() пытается разобрать их корректно.
$ php -r 'print_r(parse_url("http://username:password@hostname/path?arg=value#anchor"));'
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
$ php -r 'print_r(parse_url("http://invalid_host..name/"));'
Array
(
[scheme] => http
[host] => invalid_host..name
[path] => /
)