Свойства URL

Свойства текущей страницы

Свойства URL текущей страницы доступна через массив $_SERVER.

# http://know-online.com/php/url/svoistva-url?query=example

$_SERVER['SERVER_PROTOCOL']; // HTTP/1.1
$_SERVER['HTTP_HOST'];       // know-online.com
$_SERVER['SERVER_NAME'];     // know-online.com
$_SERVER['SERVER_PORT'];     // 80
$_SERVER['REQUEST_URI'];     // /php/url/svoistva-url?query=example
$_SERVER['QUERY_STRING'];    // query=example
$_SERVER['HTTPS'];           // on (появляется только на протоколе https)

Через PHP нельзя определить значение хеша (символа #). Например http://know-online.com/#php.

Свойства ссылки в строке

Получить свойства указанной ссылки можно через функцию parse_url().

$url = parse_url('http://know-online.com/php/url/svoistva-url?query=example&second_var=value#hash');

$url['scheme'];   // http
$url['host'];     // know-online.com
$url['path'];     // /php/url/svoistva-url
$url['query'];    // query=example&second_var=value
$url['fragment']; // hash

Если надо получить массив из строки запроса, то можно использовать функцию parse_str().

parse_str('query=example&second_var=value', $url_get);

$url_get['query']; // example
$url_get['second_var']; // value

Функция parse_str() с одним параметром считается нерекомендованным к использованию с версии PHP 7.2.0.