Свойства URL

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

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

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

$_SERVER['HTTP_X_FORWARDED_PROTO']; // https
$_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 нельзя определить значение хеша (символа #). Например https://know-online.com/#php.

Свойства ссылки в строке (с версии PHP 8.5)

В PHP 8.5 появился новый объект для парсинга и обработки URL на основе современных стандартов.

use Uri\Rfc3986\Uri;

$uri = new Uri('https://know-online.com/php/page');
$uri->getHost(); // know-online.com

Свойства ссылки в строке (до PHP 8.5)

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

$url = parse_url('https://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.