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

Posted

技术标签:

【中文标题】使用 PHP 在存档中查找特定文件【英文标题】:Find a specific file in an archive using PHP 【发布时间】:2012-04-22 02:25:14 【问题描述】:

我有一个存档(压缩)文件。用户将其存档,因此没有遵循的标准。该文件中有几个文件夹和文件。但我只对一个文件“FOI.zip”感兴趣。 FOI.zip 是 zip 文件中的存档。

例如:主文件是我拥有并且需要搜索的.. Main.zip 中可能的结构

1.
/Main.zip
 /A
  /FOI.zip
 /B
 /C

2.
/Main.zip
 /A
  /a.zip
   /FOI.zip
 /B
 /C
3.
/Main.zip
 /XYZ
  /A
   /FOI.zip
  /B
  /C

php 中,我想递归搜索 FOI.zip 并获取 FOI.zip 的路径。 我非常感谢任何帮助。

提前谢谢你。

【问题讨论】:

【参考方案1】:

如果我理解的很好,你需要在存档中找到一个FOI.zip,对吗?

如果是,你有这个解决方案:

<?php 
system('unzip' . $zip file);
system('find . | grep FOI.zip', $relative_path);

// $relative_path is a where FOI.zip is, if it's empty - means no FOI.zip found.
?>

【讨论】:

存档中可能有另一个存档。所以 FOI.zip 可以在 A.zip 中,而 A.zip 在 Main.zip 中? 当你没有找到任何东西时,你可以解压你在之前的压缩包中的所有压缩包。您也可以使用 GREP 找到它们..

以上是关于使用 PHP 在存档中查找特定文件的主要内容,如果未能解决你的问题,请参考以下文章

在 php 中使用 grep 命令在特定文件中查找字符串

BASH :: 从命令行在存档中查找文件

在 7z 单文件存档中随机查找

php 从文件夹中查找和删除特定文件类型(PHP)

在 Linux 中查找具有特定文件大小的文件

PHP 查找特定文件的相对路径