"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 decodificar páginas da Web compactadas com Gzip recuperadas via cURL em PHP?

Como decodificar páginas da Web compactadas com Gzip recuperadas via cURL em PHP?

Publicado em 2024-11-12
Navegar:143

How to Decode Gzipped Web Pages Retrieved via cURL in PHP?

Decodificação de página da web compactada com cURL recuperada via cURL em PHP

A recuperação de páginas da web compactadas com cURL pode representar desafios ao exibir o conteúdo em um navegador. Em vez de obter o HTML pretendido, você pode acabar com dados brutos compactados em gzip. Para resolver esse problema, nos aprofundamos nos métodos de decodificação eficientes em PHP.

Primeiro, precisamos entender o comportamento do cURL. Por padrão, cURL não decodifica automaticamente dados compactados em gzip. Para habilitar isso, podemos ativar o modo de "codificação automática" do cURL.

Modo de codificação automática

Execute o seguinte comando para permitir que o cURL lide com o processo de codificação:

// Allow cURL to use gzip compression, or any other supported encoding
// A blank string activates 'auto' mode
curl_setopt($ch, CURLOPT_ENCODING, '');

Com esta configuração, cURL informará o servidor sobre os métodos de codificação suportados (por meio do cabeçalho Accept-Encoding) e descompactará automaticamente a resposta.

Codificação GZIP forçada

Para situações específicas, você pode preferir forçar o cabeçalho a ser Accept-Encoding: gzip. Use este comando:

// Allow cURL to use gzip compression, or any other supported encoding
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');

Conclusão

Ao ativar o modo de codificação automática do cURL ou forçar a codificação gzip, você pode decodificar facilmente páginas da web compactadas com gzip recuperadas via cURL em PHP. Consulte a documentação do PHP para obter mais detalhes sobre curl_setopt.

Declaração de lançamento Este artigo foi reimpresso em: 1729690936 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
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