Curvas de PHP seguindo redirecionamentos

Eu estou tentando ser um pouco sneeky e como parte de um processo de aprendizagem tentar melhorar minhas habilidades de raspagem de página.

Uma coisa que eu ainda não consegui resolver é que certos sites usarão um link interno que redirecionará para um link externo.

O que eu quero fazer é modificar algum código de onda para seguir os redirecionamentos até que eles parem e, em seguida, obter o URL final do local de descanso.

Alguém recomendou algum código para mim?

Eu tenho isso no momento, mas não está seguindo os redirecionamentos corretamente no momento.

<code>        $opts = array(CURLOPT_URL => $url,
                      CURLOPT_RETURNTRANSFER => true,
                      CURLOPT_HEADER => true,
                      CURLOPT_FOLLOWLOCATION => true);      

        $curl = curl_init(); 
        curl_setopt_array($curl, $opts);  
        $str = curl_exec($curl);  
        curl_close($curl);  
</code>

questionAnswers(2)

yourAnswerToTheQuestion