cURL을 사용하여 gzip으로 압축된 웹 페이지를 검색하면 브라우저에 콘텐츠를 표시할 때 문제가 발생할 수 있습니다. 의도한 HTML을 가져오는 대신 원시 gzip 데이터로 끝날 수 있습니다. 이 문제를 해결하기 위해 PHP에서 효율적인 디코딩 방법을 탐구합니다.
먼저 cURL의 동작을 이해해야 합니다. 기본적으로 cURL은 gzip으로 압축된 데이터를 자동으로 디코딩하지 않습니다. 이를 활성화하기 위해 cURL의 "자동 인코딩" 모드를 활성화할 수 있습니다.
cURL이 인코딩 프로세스를 처리하도록 하려면 다음 명령을 실행합니다.
// Allow cURL to use gzip compression, or any other supported encoding
// A blank string activates 'auto' mode
curl_setopt($ch, CURLOPT_ENCODING, '');
이 설정을 사용하면 cURL은 서버에 지원되는 인코딩 방법(Accept-Encoding 헤더를 통해)을 알리고 자동으로 응답의 압축을 풉니다.
특정 상황에서는 헤더가 Accept-Encoding: gzip이 되도록 강제하는 것이 좋습니다. 다음 명령을 사용하십시오:
// Allow cURL to use gzip compression, or any other supported encoding
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
cURL의 자동 인코딩 모드를 활성화하거나 gzip 인코딩을 강제하면 PHP에서 cURL을 통해 검색된 gzip으로 압축된 웹 페이지를 쉽게 디코딩할 수 있습니다. 컬_setopt에 대한 자세한 내용은 PHP 문서를 참조하세요.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3