Адрес текущей страницы находится в суперглобальной переменной $_SERVER
Обратиться к ней можно внутри любой функции или метода, а так же вне функции.
Стоит рассмотреть несколько элементов этой переменной.
А именно:
Часть урла | Переменная |
Протокол: | $_SERVER['REQUEST_SCHEME'] |
Хост: | $_SERVER['HTTP_HOST'] или $_SERVER['SERVER_NAME'] |
Страница: | $_SERVER['DOCUMENT_URI'] или $_SERVER['SCRIPT_NAME'] или $_SERVER['PHP_SELF'] |
Страница+GET переменные: | $_SERVER['REQUEST_URI'] |
GET переменные: | $_SERVER['QUERY_STRING'] |
Порт: | $_SERVER['SERVER_PORT'] |
Базовая авторизация, логин и пароль, если они есть: | $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW'] |
Если вам нужен относительный адрес, то его можно вывести так:
Для абсолютного адреса следует добавить следующие элементы.
Например так:
// полный адрес без GET переменных echo $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['DOCUMENT_URI']; // полный адрес с GET переменными echo $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; // только текущая страница без GET переменных echo $_SERVER['DOCUMENT_URI']; // только текущая страница с GET переменными echo $_SERVER['REQUEST_URI'];
Если вы что-то забыли - просто распечатайте переменную $_SERVER полностью и вам сразу будет понятно какой именно её элемент вам необходим.