ホームページ >バックエンド開発 >PHPチュートリアル >PHP で cURL 経由で取得した Gzip 圧縮された Web ページを解凍する方法
cURL を使用して gzip 圧縮された Web ページを取得する場合、デコードされたコンテンツの代わりに生データが出力される場合があります。これを解決するには、次の方法を使用します。
cURL の「自動エンコード」モードを使用すると、サーバーはサポートされているエンコード方法を判断し、応答を自動的に解凍できます。このモードを有効にするには、次のコマンドを使用します。
<code class="php">curl_setopt($ch, CURLOPT_ENCODING, '');</code>
CURLOPT_ENCODING オプションを空の文字列に設定すると、cURL は「自動」モードを使用します。
または、CURLOPT_ENCODING オプションを「gzip」に設定することで、リクエストに GZIP 圧縮の使用を強制することもできます。
<code class="php">curl_setopt($ch, CURLOPT_ENCODING, 'gzip');</code>
これにより、サーバーからの GZIP 圧縮が明示的にリクエストされます。
取得したデータを手動で解凍する必要がある場合は、gzdecode() 関数を使用できます。
<code class="php">$decompressedContent = gzdecode($gzippedContent);</code>
この関数は、GZIP 圧縮データをデコードし、圧縮されていないコンテンツを返します。
信頼性の高い解凍を確保するには、curl リクエストを実行する前に PHP の出力バッファリングを無効にすることをお勧めします。これにより、cURL による応答処理への干渉が防止されます。
<code class="php">ob_end_clean();</code>
以上がPHP で cURL 経由で取得した Gzip 圧縮された Web ページを解凍する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。