Изучение различных методов получения родительского URL-адреса из местоположения сценария в PHP

При веб-разработке PHP могут возникнуть ситуации, когда вам потребуется получить родительский URL-адрес из местоположения сценария. Это может быть полезно, если вы хотите выполнять действия в зависимости от местоположения текущего сценария внутри его родительского URL-адреса. В этой статье мы рассмотрим несколько методов выполнения этой задачи, используя разговорный язык и предоставляя примеры кода для каждого метода. Давайте погрузимся!

Метод 1: использование $_SERVER[’HTTP_REFERER’]
Переменная $_SERVER[’HTTP_REFERER’] содержит URL-адрес страницы, на которую ссылается текущий PHP-скрипт. Хотя он не всегда надежен, иногда он может предоставить родительский URL-адрес. Вот пример:

$parentUrl = $_SERVER['HTTP_REFERER'];

Метод 2: использование $_SERVER[’HTTP_HOST’]
Переменная $_SERVER[’HTTP_HOST’] содержит имя хоста текущего запроса. Объединив его с каталогом скрипта, мы можем создать родительский URL. Вот пример:

$scriptPath = $_SERVER['PHP_SELF'];
$parentUrl = "http://" . $_SERVER['HTTP_HOST'] . dirname($scriptPath);

Метод 3: использование $_SERVER[’REQUEST_URI’]
Переменная $_SERVER[’REQUEST_URI’] содержит URI текущего запроса. Извлекая родительский каталог из URI, мы можем получить родительский URL. Вот пример:

$scriptPath = $_SERVER['REQUEST_URI'];
$parentUrl = "http://" . $_SERVER['HTTP_HOST'] . dirname($scriptPath);

Метод 4: использование parse_url()
Функция parse_url() позволяет нам разбить URL-адрес на его компоненты. Управляя компонентом пути, мы можем получить родительский URL-адрес. Вот пример:

$scriptUrl = $_SERVER['PHP_SELF'];
$parsedUrl = parse_url($scriptUrl);
$parentUrl = $parsedUrl['scheme'] . '://' . $parsedUrl['host'] . dirname($parsedUrl['path']);
$scriptUrl = $_SERVER['PHP_SELF'];
$pattern = '/(https?:\/\/[^\/]+\/)[^\/]+$/';
preg_match($pattern, $scriptUrl, $matches);
$parentUrl = $matches[1];

В этой статье мы рассмотрели несколько методов получения родительского URL-адреса из местоположения сценария в PHP. Каждый метод имеет свои преимущества и ограничения, поэтому выберите тот, который лучше всего соответствует вашим конкретным требованиям. Понимая эти методы, вы сможете улучшить свои проекты веб-разработки и выполнять действия в зависимости от местоположения сценария внутри его родительского URL-адреса. Приятного кодирования!