В PHP получение URL-адреса текущей страницы — обычная задача веб-разработки. Если вам это нужно для отладки, создания динамических ссылок или выполнения определенных действий на основе текущего URL-адреса, доступ к URL-адресу может быть невероятно полезен. В этой статье мы рассмотрим десять различных методов получения URL-адреса текущей страницы на PHP, сопровождая их примерами кода и разговорными пояснениями.
Метод 1: использование $_SERVER[’REQUEST_URI’]
Суперглобальная переменная $_SERVER[’REQUEST_URI’] содержит URI (универсальный идентификатор ресурса), который использовался для доступа к текущей странице. Чтобы получить URL текущей страницы, вы можете использовать следующий фрагмент кода:
$currentURL = $_SERVER['REQUEST_URI'];
echo "The current page URL is: " . $currentURL;
Метод 2: использование $_SERVER[’PHP_SELF’]
Похоже на $_SERVER[’REQUEST_URI’], переменная $_SERVER[’PHP_SELF’] содержит имя файла выполняющегося в данный момент скрипта. Чтобы получить URL текущей страницы, вы можете использовать следующий код:
$currentURL = $_SERVER['PHP_SELF'];
echo "The current page URL is: " . $currentURL;
Метод 3: использование $_SERVER[’SCRIPT_NAME’]
Переменная $_SERVER[’SCRIPT_NAME’] возвращает путь к выполняемому в данный момент скрипту относительно корня документа сервера. Вот пример того, как использовать его для получения URL текущей страницы:
$currentURL = $_SERVER['SCRIPT_NAME'];
echo "The current page URL is: " . $currentURL;
Метод 4: использование $_SERVER[’HTTP_HOST’]
Переменная $_SERVER[’HTTP_HOST’] содержит имя хоста из текущего запроса. Объединив его с другими переменными сервера, вы можете создать полный URL-адрес. Вот пример:
$currentURL = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
echo "The current page URL is: " . $currentURL;
Метод 5: использование parse_url()
Функция parse_url() может использоваться для извлечения компонентов из URL-адреса. Передавая URL-адрес текущей страницы, полученный из $_SERVER[’REQUEST_URI’], вы можете получить компоненты URL-адреса по отдельности. Вот пример:
$currentURL = $_SERVER['REQUEST_URI'];
$urlComponents = parse_url($currentURL);
echo "The current page URL is: " . $urlComponents['scheme'] . '://' . $urlComponents['host'] . $urlComponents['path'];
Метод 6: использование filter_input()
Функция filter_input() позволяет получить доступ к внешним переменным, таким как URL-адрес. Указав тип INPUT_SERVER и желаемое имя переменной, вы можете получить URL-адрес текущей страницы. Вот пример:
$currentURL = filter_input(INPUT_SERVER, 'REQUEST_URI');
echo "The current page URL is: " . $currentURL;
Метод 7: использование $_SERVER[’HTTPS’]
Переменная $_SERVER[’HTTPS’] указывает, осуществляется ли доступ к текущей странице через безопасное (HTTPS) соединение. Вы можете объединить его с другими переменными сервера для создания URL-адреса. Вот пример:
$protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http';
$currentURL = $protocol . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
echo "The current page URL is: " . $currentURL;
Метод 8: использование getcwd() и basename()
Если вам нужно только имя файла текущего сценария, вы можете использовать функцию getcwd(), чтобы получить текущий рабочий каталог, и функцию basename(), чтобы извлечь имя файла.. Вот пример:
$currentURL = getcwd() . '/' . basename($_SERVER['PHP_SELF']);
echo "The current page URL is: " . $currentURL;
Метод 9: использование $_SERVER[’QUERY_STRING’]
Переменная $_SERVER[’QUERY_STRING’] содержит часть строки запроса URL-адреса. Чтобы получить URL-адрес текущей страницы вместе со строкой запроса, вы можете использовать следующий код:
$currentURL = $_SERVER['REQUEST_URI'];
if ($_SERVER['QUERY_STRING']) {
$currentURL .= '?' . $_SERVER['QUERY_STRING'];
}
echo "The current page URL is: " . $currentURL;
Метод 10: использование HTTP_REFERER
Переменная $_SERVER[’HTTP_REFERER’] содержит URL-адрес страницы, с которой был осуществлен доступ к текущей странице. Хотя это не всегда надежно, вы можете использовать его для получения URL-адреса предыдущей страницы. Вот пример:
$previousURL = $_SERVER['HTTP_REFERER'];
echo "The previous page URL is: " . $previousURL;
В этой статье мы рассмотрели десять различных методов получения URL-адреса текущей страницы в PHP. От использования суперглобальных переменных, таких как $_SERVER[’REQUEST_URI’] и $_SERVER[’PHP_SELF’] до таких функций, как parse_url() и filter_input(), мы рассмотрели ряд вариантов получения URL-адреса. Эти методы обеспечивают гибкость и позволяют настраивать извлечение URL-адресов в соответствии с вашими конкретными потребностями в веб-разработке.