2014-10-06 50 views
0

您可以打開這樣的gzip壓縮的HTTP資源:添加到包裝已打開流

$file = 'compress.zlib://http://www.example.com/myarchive.gz'; 
$fp = fopen($file, 'rb'); 

但是假如你不知道一個資源gzip壓縮,直到你打開後,用stream_get_meta_data,如何獲取其元數據您是否已經在fopen'd資源之後添加compress.zlib

+1

是['gzopen()'](http://php.net/manual/en/function.gzopen.php)不是,你可以使用一個替代? – Darren 2014-10-06 03:48:15

+0

@Darren不,我實際上將相當多的選項傳遞給fopen(上下文)的第4個參數,gzopen不支持。並不是說它有很大的區別;我認爲'compress.zlib://'或多或少等同於'gzopen'。這兩個實際*做*工作在非壓縮文件,但它不是*只是* gzipped文件我會提取所以我想有條件地添加一個基於內容編碼的包裝,我不知道直到頭後通過。 – mpen 2014-10-06 15:39:39

回答

0

您是否可以使用curl來讀取文件? http://php.net/manual/en/book.curl.php

$ch = curl_init(); 
curl_setopt_array($ch, array(
    CURLOPT_URL => 'http://www.example.com/myarchive.gz' 
    , CURLOPT_HEADER => 0 
    , CURLOPT_RETURNTRANSFER => 1 
    , CURLOPT_ENCODING => 'gzip' 
)); 
echo curl_exec($ch); 
+0

我特別想避免捲曲,但你也錯過了這個問題的前提。我不知道編碼,直到我回頭。 – mpen 2014-10-06 15:35:49