提取ZIP的文件名,其中根是目录

时间:2015-06-16 16:15:59

标签: php zip

您好我正在寻找一种方法来提取ZIP的文件名,并在我的网站上创建一个zip的内容。我不想提取文件本身我只是想通过zip文件循环并打印出它的内容。

这包括子文件夹等。 我找到了一个很好的答案here,并将以下代码作为解决方案:

$zip = new ZipArchive; 
if ($zip->open('source.zip') === TRUE) 
{ 
     for($i = 0; $i < $zip->numFiles; $i++) 
     {   
        $fp = $zip->getStream($zip->getNameIndex($i));
        if(!$fp) exit("failed\n");
        while (!feof($fp)) {
            $contents = fread($fp, 8192);
            // do some stuff
        }
        fclose($fp);
     }
} 
else 
{ 
     echo 'Error reading zip-archive!'; 
} 

但这不适用于子目录。

但我发现的另一个差距如下:如果整个zip存档只有一个根目录,并且在这个目录中是所有其他文件,那么方法$ zip-&gt; numFiles将返回0,因此循环(在上面的例子中)将不会运行!

总的来说,我认为这不会一直有效。我认为一种解决方案是进行递归,但这很难实现,所以我正在寻找替代方案。

0 个答案:

没有答案