在PHP中打开和列出zip存档中的文件/文件夹

时间:2013-08-08 07:42:21

标签: php ziparchive

好吧,

我需要的是:

PHP脚本,可以打开并回显出保存在位置的zip存档中包含的所有顶级文件和文件夹:

/submittions/projects/zip/file_name.zip

因此,如果一个zip存档包含3个文件夹和2个顶级文件,其中所有这三个顶级文件夹中都包含子文件夹,我应该得到结果:

folder_name_1
folder_name_2
folder_name_3
file_name_1
file_name_2

我试着在这里搜索,但仍然没有。

有一个提取教程,但它没有清楚地说明列出每个文件:

http://net.tutsplus.com/articles/news/how-to-open-zip-files-with-php/

我尝试了zip_open($ path_to_zip)

使用此功能时,我输出为5.我相信这是一个错误号码。 所有这些ZIP文件都设置为CHMOD 777

还有一件事,在应用zip_open()时,如果我测试文件是否打开,我会得到两个不同的情况:

$zip  =  zip_open($path);

// CHECK ONE
if($zip) {
 echo "Opened";
} else {
 echo "Failed";
}

// CHECK TWO
if(is_resource($zip)) {
 echo "Opened";
} else {
 echo "Failed";
}

检查ONE返回已打开,检查TWO返回失败。

我只想把文件和文件夹名称放在一个zip存档中,如果你给我一个简单而直接的解决方案而没有任何提取部分,如果可能的话,这将是很好的吗?

我的服务器的PHP配置在这里:http://academicadda.com/info.php

下面是zip.zip在同一目录中的简单代码:

<?php 
$zip    =   zip_open('zip.zip');
if(is_resource($zip)) {
echo "open";
} else {
echo "failed";
}

?>

输出:打开

读取每个顶级文件和文件夹应该是什么代码? zip_read()?

2 个答案:

答案 0 :(得分:0)

if($zip)返回true,因为它是一个正值,在你的情况下为5.并且错误代码5引用了“无法读取”的问题。我建议你检查你的路径和权限。

答案 1 :(得分:0)

谢谢大家对我说话。

这是路径和许可问题。

以下是我在解决方法后最终得到的解决方案:

<?php 
$zip    =   zip_open('zip.zip');

if(is_resource($zip)) {

   while (($zip_entry = zip_read($zip)))
        {
            echo $path = zip_entry_name($zip_entry);
        }

} else {
   echo "failed";
}

?>
相关问题