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

Posted

技术标签:

【中文标题】在 PHP 中打开并列出 zip 存档中的文件/文件夹【英文标题】:Open and List files/folders in a zip archive in PHP 【发布时间】:2013-08-08 07:42:20 【问题描述】:

嗯,

我需要的是:

可以打开并回显所有***文件和文件夹的 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() ?

【问题讨论】:

由于is_source() 不是标准的PHP 函数,或许您应该向我们展示代码,以便我们了解它应该做什么以及为什么它返回false 对不起,是is_resource()。我打错了。我的错! 我刚从头开始。我有一个 zip 文件 ab.zip 所在的目录。我想阅读该档案中的***文件和文件夹。为此,据我所知,我尝试使用 zip_open() 然后 zip_read() 函数......但打开 zip 文件似乎有问题。我在这里和其他网站上找到的所有教程和问题都是关于提取 zip 存档的。 【参考方案1】:

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

【讨论】:

嘿,谢谢,它现在开放了。我如何从中读取每个***文件?或者认为我需要更多时间谷歌搜索。 尝试类似的方法:while($zip_entry = zip_read($zip)) ...。更详细的示例可以在php.net/manual/en/function.zip-open.php#85585 找到【参考方案2】:

谢谢你们对我的讲话。

这是路径和权限问题。

这是我在解决方法后终于得到的解决方案:

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


?>

【讨论】:

以上是关于在 PHP 中打开并列出 zip 存档中的文件/文件夹的主要内容,如果未能解决你的问题,请参考以下文章

Android 上的 J7zip - 从存档中提取并列出内容

使用 PHP 在存档中查找特定文件

无法打开受密码保护的 zip 存档

PHP 处理档案中的文件

PHP ZipArchive中的PDF引发错误,服务器权限[关闭]

强制从 php 打开和读取 zip 文件