Создается дубликат PHP cURL: получить цель перенаправления, не следуя ей
Однако это можно сделать в 3 простых шага:
Шаг1. Инициализируйте curl
curl_init($ch); //initialise the curl handle
//COOKIESESSION is optional, use if you want to keep cookies in memory
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
Шаг 2. Получите заголовки для $url
curl_setopt($ch, CURLOPT_URL, $url); //specify your URL
curl_setopt($ch, CURLOPT_HEADER, true); //include headers in http data
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); //don't follow redirects
$http_data = curl_exec($ch); //hit the $url
$curl_info = curl_getinfo($ch);
$headers = substr($http_data, 0, $curl_info["header_size"]); //split out header
Шаг 3. Выполните синтаксический анализ заголовков, чтобы получить новый URL
preg_match("!\r\n(?:Location|URI): *(.*?) *\r\n!", $headers, $matches);
$url = $matches[1];
Получив новый URL, вы можете повторять шаги 2-3 столько раз, сколько захотите.