我在客户端遇到了一个扩展名为.gz的文件夹的问题,其中包含xml文件。我必须将该文件夹下载到本地目录中,然后我需要提取该文件夹。
我可以将.gz文件夹下载到本地,但无法提取该文件夹。
我试着用
ZipArchive::extractto($targetfolder);
但它不接受.gz.
当我搜索堆栈溢出时,我只找到.gz文件的答案,而没有找到.gz文件夹的答案。
尝试使用PHP内置的gzfile()函数。
这将在4kB块中解压缩文件:
function uncompress($srcName, $dstName) {
$sfp = gzopen($srcName, "rb");
$fp = fopen($dstName, "w");
while ($string = gzread($sfp, 4096)) {
fwrite($fp, $string, strlen($string));
}
gzclose($sfp);
fclose($fp);
}
ZipArchive的文档中没有任何关于能够打开gz
格式文件的内容(zip
和gz
不相同)。您可能需要使用Zlib来解压缩gz
文件,如果它是tar.gz
或tgz
文件,您还需要一些东西来解压缩该文件。
这个问题和这个新问题讨论了如何在PHP中提取tar.gz
文件。