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

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

Метод 1: использование библиотеки cURL

<?php
function getFinalRedirectURL($url) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_exec($ch);
    $finalURL = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
    curl_close($ch);
    return $finalURL;
}
// Example usage
$url = "https://example.com";
$finalURL = getFinalRedirectURL($url);
echo "Final Redirect URL: " . $finalURL;
?>

Метод 2: использование функции get_headers()

<?php
function getFinalRedirectURL($url) {
    $headers = get_headers($url, 1);
    if (isset($headers['Location'])) {
        if (is_array($headers['Location'])) {
            $finalURL = end($headers['Location']);
        } else {
            $finalURL = $headers['Location'];
        }
        return $finalURL;
    }
    return $url;
}
// Example usage
$url = "https://example.com";
$finalURL = getFinalRedirectURL($url);
echo "Final Redirect URL: " . $finalURL;
?>

Метод 3. Использование библиотеки HTTP_Request2

<?php
require_once 'HTTP/Request2.php';
function getFinalRedirectURL($url) {
    $request = new HTTP_Request2($url, HTTP_Request2::METHOD_HEAD);
    $request->setConfig(['follow_redirects' => true]);
    $response = $request->send();
    $finalURL = $response->getEffectiveUrl();
    return $finalURL;
}
// Example usage
$url = "https://example.com";
$finalURL = getFinalRedirectURL($url);
echo "Final Redirect URL: " . $finalURL;
?>

Метод 4: использование функции file_get_contents()

<?php
function getFinalRedirectURL($url) {
    $headers = get_headers($url, 1);
    if (isset($headers['Location'])) {
        if (is_array($headers['Location'])) {
            $finalURL = end($headers['Location']);
        } else {
            $finalURL = $headers['Location'];
        }
        return $finalURL;
    }
    return $url;
}
// Example usage
$url = "https://example.com";
$finalURL = getFinalRedirectURL($url);
echo "Final Redirect URL: " . $finalURL;
?>

В этой статье мы рассмотрели несколько методов получения окончательного URL-адреса перенаправления в PHP. Мы рассмотрели методы использования библиотеки cURL, функции get_headers(), библиотеки HTTP_Request2 и file_get_contents(). Каждый метод предоставляет способ получить окончательный URL-адрес перенаправления на основе конкретных требований вашего проекта. Используя эти методы, вы можете эффективно обрабатывать сценарии перенаправления URL-адресов в своих приложениях PHP.