Распакуйте gzip файл от ЗАВИХРЕНИЯ на php

Кто-либо знает, как распаковать содержание gzip файла, который я получил с завихрением?

например: http://torcache.com/torrent/63ABC1435AA5CD48DCD866C6F7D5E80766034391.torrent

ответивший

HTTP/1.1 200 OK
Server: nginx
Date: Wed, 09 Jun 2010 01:11:26 GMT
Content-Type: application/x-bittorrent
Content-Length: 52712
Last-Modified: Tue, 08 Jun 2010 15:09:58 GMT
Connection: keep-alive
Expires: Fri, 09 Jul 2010 01:11:26 GMT
Cache-Control: max-age=2592000
Content-Encoding: gzip
Accept-Ranges: bytes

затем сжатый gzip,

я попробовал gzdecode, но не работаю, gzeflate также не делает они просто не получают ответа, и содержание файлов не больше, чем 2k

30
задан Daniel Stenberg 31 January 2013 в 08:03
поделиться

5 ответов

Use gzdecode:

<?php
    $c = file_get_contents("http://torcache.com/" .
        "torrent/63ABC1435AA5CD48DCD866C6F7D5E80766034391.torrent");
    echo gzdecode($c);

gives

d8:announce42:http://tracker.openbittorrent.com/announce13:announce-listll42
...
14
ответ дан 27 November 2019 в 23:04
поделиться

Вы пробовали gzuncompress или gzinflate?

gzdeflate сжимает, противоположное тому, что вы хотите. Честно говоря, я не могу понять, чем gzdecode отличается от обычного распаковщика.

Есть также опция cURL CURLOPT_ENCODING:

Содержимое заголовка "Accept-Encoding: " заголовка. Это позволяет декодировать ответ. Поддерживаемые кодировки: "identity", "deflate" и "gzip". Если задана пустая строка "", отправляется заголовок, содержащий все поддерживаемые типы кодировок.

Похоже, это означает, что ответ будет автоматически распаковываться, но я этого не проверял.

0
ответ дан 27 November 2019 в 23:04
поделиться

Пробовали ли вы установить заголовок, указывающий, что вы принимаете gzip-кодирование следующим образом?:

curl_setopt($rCurl, CURLOPT_HTTPHEADER, array('Accept-Encoding: gzip,deflate'));
1
ответ дан 27 November 2019 в 23:04
поделиться

libcurl предлагает функцию, которая позволяет автоматически распаковывать содержимое (если он собран с zlib).

См. опцию CURLOPT_ENCODING: http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTENCODING

12
ответ дан 27 November 2019 в 23:04
поделиться

Просто скажите cURL, чтобы ответ автоматически декодировался всякий раз, когда он архивируется с помощью gzip

curl_setopt($ch,CURLOPT_ENCODING, '');
76
ответ дан 27 November 2019 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: