cURL请求未使用CURLOPT_ENCODING标志

时间:2015-03-31 01:45:35

标签: php curl

我正在尝试将已直接gz'd的csv下载到文件中:

$fp = fopen ($file.'.csv', 'w+');
$ch = curl_init($url.'/'.$file.'.csv.gz');
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
curl_exec($ch);
curl_close($ch);
fclose($fp);

最终发生的是{$ file} .csv写入磁盘,但它仍然是编码的。如果我重命名存储的文件{$ file} .csv.gz并对其进行gunzip,则数据会被正确解码。

1 个答案:

答案 0 :(得分:0)

我最终下载了该文件并创建了另一段代码,然后对其进行解码。

$buffer_size = 262144;
$in_file_handle = gzopen($symbol.'.csv.gz', 'rb');
$out_file_handle = fopen($symbol.'.csv', 'wb');
// Keep repeating until the end of the input file
while(!gzeof($in_file_handle)) {        
    fwrite($out_file_handle, gzread($in_file_handle, $buffer_size));
}
// Files are done, close files
fclose($out_file_handle);
gzclose($in_file_handle);

但是,我仍然非常感兴趣让curl一步到位。