"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como recuperar o URL real após o redirecionamento com file_get_contents()?

Como recuperar o URL real após o redirecionamento com file_get_contents()?

Publicado em 2024-11-12
Navegar:816

How to Retrieve the Actual URL after Redirection with file_get_contents()?

Recuperando o URL real após a recuperação do arquivo com file_get_contents

Ao usar file_get_contents() para recuperar o conteúdo do site, é possível que o URL fornecido redirecione para um local diferente. Embora esse recurso possa ser conveniente, ele também pode criar a necessidade de determinar o URL real alcançado após o redirecionamento.

Um método para conseguir isso é configurar file_get_contents() para ignorar redirecionamentos. Veja como:

$context = stream_context_create(
    array(
        'http' => array(
            'follow_location' => false
        )
    )
);

$html = file_get_contents('http://www.example.com/', false, $context);

Ao definir 'follow_location' como false no contexto do stream, file_get_contents() irá recuperar o conteúdo sem seguindo automaticamente os redirecionamentos.

Após fazer a solicitação, os cabeçalhos retornados durante a resposta HTTP podem ser examinados para obter a URL final:

var_dump($http_response_header);

Isso exibirá uma matriz contendo os cabeçalhos HTTP, incluindo o cabeçalho 'Location' que indica o URL real alcançado após qualquer redirecionamento.

Esta abordagem é inspirada na solução fornecida no Stack Overflow no tópico "Como devo ignorar um cabeçalho movido com file_get_contents em PHP?"

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3