Maison  >  Article  >  développement back-end  >  Comment décompresser des pages Web gzippées récupérées via cURL en PHP ?

Comment décompresser des pages Web gzippées récupérées via cURL en PHP ?

DDD
DDDoriginal
2024-10-24 01:00:02753parcourir

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

Décodage de 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 :

Mode d'encodage automatique

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".

Forcer la compression GZIP

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.

Décompression PHP Fonction

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é.

Bonne pratique

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>

Remarques supplémentaires

  • Gardez à l'esprit que le serveur doit prendre en charge la compression GZIP pour que l'une de ces méthodes fonctionne.
  • Pour plus d'informations sur les options cURL, reportez-vous à la documentation PHP sur curl_setopt.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn