Перенаправление 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.