日期:2014-05-17  浏览次数:20568 次

请问如何解压.tar.gz .gzip .gz 类型文档
我想上传一个文档到服务器, 格式有可能是tar.gz 或者gzip 也有可能是gz 格式文档. 然后通过PHP来解压. 
我在网上找到些代码,可以实现上传并解压tar.gz格式文档到服务器, 其它格式比如gzip, gz无法上传解压成功(即服务器上传目录没文件). 

PHP code

$zipFile = $_FILES["file"]["tmp_name"];
$zp = @fopen($zipFile, "r");
$fp=popen('tar xzf - --overwrite --directory='.$uploadDir.'/','w');
while(!@feof($zp)) {
    $string = @fread($zp, 4096);
    @fwrite($fp, $string, strlen($string));
    
}
@fclose($zp);
@pclose($fp);




我在网上看到听说使用pharData 类可以实现, 但我看不懂.  
请问如何处理多种格式解压? 谢谢!


------解决方案--------------------
刚好 自己试看看是不是可以支持你上面的那几个格式

$zip = new ZipArchive;
if ($zip->open('test.gzip') === TRUE) {
$zip->extractTo('./test/'); 
$zip->close();
------解决方案--------------------
实在找不到,判断下文件后缀,然后直接用system发送系统命令来解压吧。

tar -zxvf xxx.tar.gz
bunzip xxx.gzip
...
------解决方案--------------------
如果你不想动态链接so进去的话,最好还是自己编译php