2010-11-25 8 views
3

J'utilise curl pour récupérer des données à partir de nombreux sites Web. Parfois, ils envoient gzip. Comment détecter la réponse est gzip ou non?php curl, détecter la réponse est gzip ou non

+0

Vous avez besoin d'un en-tête de type contenu dans la réponse. Cela devrait vous être utile. http://www.satya-weblog.com/2010/07/php-curl-get-returned-content-mime-type.html –

Répondre

3
curl_setopt($curl, CURLOPT_HEADER, true); 

Le résultat de curl_exec comprendra alors également les en-têtes de la réponse HTTP, que vous pouvez analyser pour voir si elle est gzip.

Une réponse gzip serait comme ceci:

HTTP/1.1 200 OK 
Server: Apache 
Content-Type: text/html 
Content-Encoding: gzip 
Content-Length: 26395 

[GZIP COMPRESSED DATA] 

Ainsi, vous pouvez d'abord briser la réponse en-têtes et le contenu, puis analyser les en-têtes pour voir si elle dit quelque chose au sujet du contenu codé gzip.

5

BTW, si vous définissez:

CURLOPT_ENCODING => '', 

CURL décode automatiquement les données pour vous.

Questions connexes