Maison >développement back-end >tutoriel php >Comment décompresser des pages Web gzippées récupérées via cURL en PHP ?
Lors de la récupération de pages Web gzippées à l'aide de cURL, les données brutes peuvent être générées à la place du contenu décodé. La résolution de ce problème peut être obtenue en utilisant les méthodes suivantes :
Le mode « encodage automatique » de cURL permet au serveur de déterminer les méthodes d'encodage prises en charge et de décompresser automatiquement la réponse. Pour activer ce mode, utilisez la commande suivante :
<code class="php">curl_setopt($ch, CURLOPT_ENCODING, '');</code>
En définissant l'option CURLOPT_ENCODING sur une chaîne vide, cURL utilisera le mode "auto".
Alternativement, vous pouvez forcer la demande d'utilisation de la compression GZIP en définissant l'option CURLOPT_ENCODING sur 'gzip' :
<code class="php">curl_setopt($ch, CURLOPT_ENCODING, 'gzip');</code>
Cela demandera explicitement la compression GZIP au serveur.
Si vous devez décompresser manuellement les données récupérées, vous pouvez utiliser la fonction gzdecode() :
<code class="php">$decompressedContent = gzdecode($gzippedContent);</code>
Cette fonction décode les données compressées par GZIP et renvoie le contenu non compressé.
Pour garantir une décompression fiable, il est recommandé de désactiver la mise en mémoire tampon de sortie de PHP avant d'exécuter la requête curl. Cela évite toute interférence avec le traitement de la réponse par cURL.
<code class="php">ob_end_clean();</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!