Obtenha o redirecionamento final com Curl PHP

Eu tenho que obter o URL de redirecionamento final deste: https://web.archive.org/web/20070701005218/http://www.maladnews.com/ que redireciona para isso: https: //web.archive. org / web / 20080109064420 / http: //www.maladnews.com/Site%203/Malad%20City%20&%20Oneida%20County%20News/Malad%20City%20&%20Oneida%20County%20News.html

Eu tentei as respostas de outras respostas do stackoverflow que funcionam para outros sites, mas não para o link acima.

Tentei extrair o header da localização normal:

if(preg_match('#Location: (.*)#', $html, $m)) $l = trim($m[1]); 

e também verificou a maneira javascript:

 preg_match("/window\.location\.replace\('(.*?)'\)/", $html, $m) ? $m[1] : null; 

Por favor ajude!

Use curl_getinfo() com CURLINFO_REDIRECT_URL ou CURLINFO_EFFECTIVE_URL dependendo do seu caso de uso.

CURLINFO_REDIRECT_URL – Com a opção CURLOPT_FOLLOWLOCATION desativada: URL de redirecionamento encontrada na última transação, que deve ser solicitada manualmente a seguir. Com a opção CURLOPT_FOLLOWLOCATION habilitada: esta está vazia. O URL de redirecionamento neste caso está disponível em CURLINFO_EFFECTIVE_URL

http://php.net/manual/en/function.curl-getinfo.php

Exemplo:

 < ?php $url = 'https://google.com/'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); $html = curl_exec($ch); $redirectedUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); curl_close($ch); echo "Original URL: " . $url . "\n"; echo "Redirected URL: " . $redirectedUrl . "\n"; 

Quando eu executo este código, a saída é:

 Original URL: https://google.com/ Redirected URL: https://www.google.com/