Различные методы получения ссылки на текущую страницу в PHP

Чтобы получить ссылку на текущую страницу в PHP, вы можете использовать несколько методов. Ниже я объясню несколько распространенных подходов на примерах кода:

Метод 1: использование $_SERVER[’PHP_SELF’]

$currentLink = $_SERVER['PHP_SELF'];

Этот метод получает путь и имя текущего файла относительно корня документа. Однако он не содержит никаких параметров запроса.

Метод 2: использование $_SERVER[’REQUEST_URI’]

$currentLink = $_SERVER['REQUEST_URI'];

Этот метод извлекает полный URL-адрес, включая параметры запроса, если таковые имеются. Он возвращает путь, имя файла и строку запроса текущей страницы.

Метод 3: использование $_SERVER[’SCRIPT_NAME’] и $_SERVER[’QUERY_STRING’]

$currentLink = $_SERVER['SCRIPT_NAME'];
if ($_SERVER['QUERY_STRING']) {
    $currentLink .= '?' . $_SERVER['QUERY_STRING'];
}

Этот метод объединяет имя скрипта и строку запроса (если есть) для получения URL-адреса текущей страницы.

Метод 4: использование $_SERVER[’HTTP_HOST’] и $_SERVER[’REQUEST_URI’]

$currentLink = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

Этот метод создает полный URL-адрес, используя HTTP-хост и URI запроса.

Метод 5. Использование функции get_current_url()

function get_current_url()
{
    $protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http';
    $host = $_SERVER['HTTP_HOST'];
    $uri = $_SERVER['REQUEST_URI'];
    return $protocol . '://' . $host . $uri;
}
$currentLink = get_current_url();

Этот метод инкапсулирует логику в пользовательскую функцию для упрощения повторного использования.