0

出色地,

我需要的是:

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";
}

检查一个返回打开,检查两个返回失败。

我只想要一个 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() ?

4

2 回答 2

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";
}

?>
于 2013-08-08T08:34:22.223 回答
0

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

于 2013-08-08T08:21:51.663 回答